WoWInterface SVN UrbanAchiever

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /trunk
    from Rev 112 to Rev 113
    Reverse comparison

Rev 112 → Rev 113

Main.lua
1002,6 → 1002,15
self.frame.display.reward = self.frame.display:CreateFontString("$parentReward", "ARTWORK", "GameFontNormal")
self.frame.display.reward:SetPoint("TOP", self.frame.display, "TOP", 0, -127)
self.frame.display.reward:SetTextColor(1,1,1)
 
--Display completed
self.frame.display.completed = self.frame.display:CreateFontString("$parentReward", "ARTWORK", "GameFontNormal")
self.frame.display.completed:SetPoint("TOP", self.frame.display, "TOP", 0, -60)
self.frame.display.completed:SetTextColor(0,1,0)
 
--Display repCriteria
self.frame.display.repCriteria = self.frame.display:CreateFontString("$parentReward", "ARTWORK", "GameFontNormal")
self.frame.display.repCriteria:SetPoint("BOTTOM", self.frame.display, "TOP", 0, 3)
 
--Display Compare Completed
self.frame.display.compareDate = self.frame.display:CreateFontString("$parentReward", "ARTWORK", "GameFontNormal")
1033,9 → 1042,33
--Criteria Buttons
self.frame.display.criteriaButtons[1] = self:CreateCriteriaButton("$parentCriteriaButton1", self.frame.display)
self.frame.display.criteriaButtons[1]:SetPoint("TOPLEFT", 0, -160)
for i=2, 18 do
self.frame.display.criteriaButtons[1]:SetScript("OnEnter", function(self)
if ( self.date ) then
GameTooltip:SetOwner(self, "ANCHOR_RIGHT",-50,0);
GameTooltip:AddLine(self.date, 1, 1, 1);
UrbanAchiever:CheckGuildMembersTooltip(self);
GameTooltip:Show();
end
end)
self.frame.display.criteriaButtons[1]:SetScript("OnLeave", function(self)
GameTooltip:Hide();
guildMemberRequestFrame = nil;
end)
for i=2, 9 do
self.frame.display.criteriaButtons[i] = self:CreateCriteriaButton("$parentCriteriaButton" .. i, self.frame.display)
self.frame.display.criteriaButtons[i]:SetPoint("TOPLEFT", self.frame.display.criteriaButtons[i-1], "BOTTOMLEFT")
self.frame.display.criteriaButtons[i]:SetScript("OnEnter", function(self)
if ( self.date ) then
GameTooltip:SetOwner(self, "ANCHOR_RIGHT",-50,0);
GameTooltip:AddLine(self.date, 1, 1, 1);
UrbanAchiever:CheckGuildMembersTooltip(self);
GameTooltip:Show();
end
end)
self.frame.display.criteriaButtons[i]:SetScript("OnLeave", function(self)
GameTooltip:Hide();
guildMemberRequestFrame = nil;
end)
end
 
--Display Scroll Bar
1073,6 → 1106,59
self.frame:Hide()
end
 
function self:CheckGuildMembersTooltip(requestFrame)
if ( self.currentTab == "guild" ) then
local achievementId = requestFrame.id;
local _, achievementName, points, achievementCompleted, month, day, year, description, flags, iconpath = GetAchievementInfo(achievementId);
-- check if achievement has names, only if completed
if ( achievementCompleted and bit.band(flags, ACHIEVEMENT_FLAGS_SHOW_GUILD_MEMBERS) == ACHIEVEMENT_FLAGS_SHOW_GUILD_MEMBERS ) then
local numMembers = GetGuildAchievementNumMembers(achievementId);
if ( numMembers == 0 ) then
-- we may not have the members from the server yet
guildMemberRequestFrame = requestFrame;
GetGuildAchievementMembers(achievementId);
else
-- add a line break if the tooltip shows completed date (meta tooltip)
if ( GameTooltip:NumLines() > 0 ) then
GameTooltip:AddLine(" ");
end
GameTooltip:AddLine(GUILD_ACHIEVEMENT_EARNED_BY, 1, 1, 1);
local leftMemberName;
for i = 1, numMembers do
if ( leftMemberName ) then
GameTooltip:AddDoubleLine(leftMemberName, GetGuildAchievementMemberInfo(achievementId, i));
leftMemberName = nil;
else
leftMemberName = GetGuildAchievementMemberInfo(achievementId, i);
end
end
-- check for leftover name
if ( leftMemberName ) then
GameTooltip:AddLine(leftMemberName);
end
end
-- otherwise check if criteria has names
elseif ( bit.band(flags, ACHIEVEMENT_FLAGS_SHOW_CRITERIA_MEMBERS) == ACHIEVEMENT_FLAGS_SHOW_CRITERIA_MEMBERS ) then
local numCriteria = GetAchievementNumCriteria(achievementId);
local firstName = true;
for i = 1, numCriteria do
local criteriaString, _, completed, _, _, charName = GetAchievementCriteriaInfo(achievementId, i);
if ( completed and charName ) then
if ( firstName ) then
if ( achievementCompleted ) then
GameTooltip:AddLine(GUILD_ACHIEVEMENT_EARNED_BY, 1, 1, 1);
else
GameTooltip:AddLine(INCOMPLETE, 1, 1, 1);
end
firstName = false;
end
GameTooltip:AddDoubleLine(criteriaString, charName, 0, 1, 0);
end
end
end
end
end
 
function self:CreateCategoryButton(name, parent)
local button = CreateFrame("Button", name, parent)
button:EnableMouseWheel(true)
1722,16 → 1808,38
self.frame.display.points:SetText(points)
self.frame.display.shield:SetTexture("Interface\\AchievementFrame\\UI-Achievement-Shields")
end
 
 
if self.currentTab == "guild" then
requiresRep, hasRep, repLevel = GetAchievementGuildRep(self.currentAch);
if ( requiresRep ) then
initialOffset = -ACHIEVEMENTBUTTON_CRITERIAROWHEIGHT;
local gender = UnitSex("player");
local factionStandingtext = GetText("FACTION_STANDING_LABEL"..repLevel, gender);
self.frame.display.repCriteria:SetFormattedText(ACHIEVEMENT_REQUIRES_GUILD_REPUTATION, factionStandingtext);
if ( hasRep ) then
self.frame.display.repCriteria:SetTextColor(0, 1, 0);
else
self.frame.display.repCriteria:SetTextColor(1, 0, 0);
end
self.frame.display.repCriteria:Show();
else
self.frame.display.repCriteria:Hide();
end
else
self.frame.display.repCriteria:Hide();
end
 
if completed == "" then
self.frame.display.shield:SetTexCoord(.5, 1, 0, .5)
self.frame.display.points:SetVertexColor(.65, .65, .65)
self.frame.display.reward:SetTextColor(1,1,1)
self.frame.display.reward:SetText(reward)
self.frame.display.completed:SetText("")
else
self.frame.display.shield:SetTexCoord(0 , .5, 0, .5)
self.frame.display.points:SetVertexColor(1, 1, 1)
self.frame.display.reward:SetTextColor(0,1,0)
self.frame.display.reward:SetText(UACompleted .. ": " .. completed)
self.frame.display.reward:SetText(reward)
self.frame.display.completed:SetText(UACompleted .. ": " .. completed)
end
 
if self.isComparing then
1765,17 → 1873,19
self.frame.display.bar:Hide()
self.frame.display.compareBar:Hide()
 
--for a = 1, GetAchievementNumCriteria(self.currentAch) do
-- if buttonNum <= #self.frame.display.criteriaButtons and a > self.criteriaOffset then
for a = self.criteriaOffset + 1, min(#self.frame.display.criteriaButtons + self.criteriaOffset, GetAchievementNumCriteria(self.currentAch)) do
self.frame.display.criteriaButtons[buttonNum]:Show()
self.frame.display.criteriaButtons[buttonNum].icon:Hide()
self.frame.display.criteriaButtons[buttonNum].comparison:Hide()
offset = 1
 
criteriaName, criteriaType, criteriaCompleted, criteriaQuantity, criteriaReqQuantity,icon ,criteriaFlags, criteriaAssetID, quantityStr =
 
criteriaName, criteriaType, criteriaCompleted, criteriaQuantity, criteriaReqQuantity, charName, criteriaFlags, criteriaAssetID, quantityStr =
GetAchievementCriteriaInfo(self.currentAch, a)
if criteriaType then --Some Achievements seem to throw out the wrong number of criteria, causing errors.
if criteriaType == CRITERIA_TYPE_ACHIEVEMENT and criteriaAssetID then
id, criteriaName, _, criteriaCompleted, month, day, year, _, _, icon = GetAchievementInfo(criteriaAssetID);
end
 
if criteriaCompleted then
str = "|CFF00FF00"
else
1799,15 → 1909,12
end
end
 
if criteriaType == CRITERIA_TYPE_ACHIEVEMENT then
if criteriaType == CRITERIA_TYPE_ACHIEVEMENT and criteriaAssetID then
--Its a meta achievement
retok,_,_,_,_,_,_,_,_,_,icon = pcall (GetAchievementInfo,criteriaAssetID)
if retok then
self.frame.display.criteriaButtons[buttonNum].icon:SetTexture(icon)
self.frame.display.criteriaButtons[buttonNum].icon:Show()
offset = offset + 16
self.frame.display.criteriaButtons[buttonNum]:SetID(criteriaAssetID)
end
self.frame.display.criteriaButtons[buttonNum].icon:SetTexture(icon)
self.frame.display.criteriaButtons[buttonNum].icon:Show()
offset = offset + 16
self.frame.display.criteriaButtons[buttonNum]:SetID(criteriaAssetID)
elseif (bit.band(criteriaFlags, ACHIEVEMENT_CRITERIA_PROGRESS_BAR) == ACHIEVEMENT_CRITERIA_PROGRESS_BAR) then
--Its a progress bar
offset = 1
1839,7 → 1946,16
--If theres a progress bar, theres no other achievements
break
end
 
if month then
self.frame.display.criteriaButtons[buttonNum].date = string.format(SHORTDATE, day, month, year);
else
self.frame.display.criteriaButtons[buttonNum].date = nil;
end
if id then
self.frame.display.criteriaButtons[buttonNum].id = id;
else
self.frame.display.criteriaButtons[buttonNum].id = nil;
end
self.frame.display.criteriaButtons[buttonNum].text:SetText(str)
self.frame.display.criteriaButtons[buttonNum].offset:SetWidth(offset)
buttonNum = buttonNum + 1
1909,18 → 2025,22
 
if self.currentTab == "guild" then
self.pointsText:SetTextColor(0,1,0);
self.pointsText:SetText(GetTotalAchievementPoints(true));
total, completed = GetNumCompletedAchievements(true);
self.frame.summaryBar:SetMinMaxValues(0, total)
self.frame.summaryBar:SetValue(completed)
self.frame.summaryBar.text:SetText(completed .. "/" .. total)
self.pointsText:SetText(GetTotalAchievementPoints(true));
if self.currentCat == -1 then
self.frame.summaryBar:SetMinMaxValues(0, total)
self.frame.summaryBar:SetValue(completed)
self.frame.summaryBar.text:SetText(completed .. "/" .. total)
end
else
total, completed = GetNumCompletedAchievements();
self.frame.summaryBar:SetMinMaxValues(0, total)
self.frame.summaryBar:SetValue(completed)
self.frame.summaryBar.text:SetText(completed .. "/" .. total)
self.pointsText:SetTextColor(1,1,1);
self.pointsText:SetText(GetTotalAchievementPoints());
total, completed = GetNumCompletedAchievements();
if self.currentCat == -1 then
self.frame.summaryBar:SetMinMaxValues(0, total)
self.frame.summaryBar:SetValue(completed)
self.frame.summaryBar.text:SetText(completed .. "/" .. total)
end
end
 
--Stuff for tab highlights
FactionSpecificAchievements.lua
380,6 → 380,15
["5155"] = 1,--Classy Dwarves
["5152"] = 1,--Stay Classy
["4912"] = 1,--Guild Level 25
["5171"] = 1,--Blood Elf Slayer
["5195"] = 1,--City Attacker
["5172"] = 1,--Goblin Slayer
["5031"] = 1,--Horde Slayer
["5167"] = 1,--Orc Slayer
["5168"] = 1,--Tauren Slayer
["5170"] = 1,--Troll Slayer
["5169"] = 1,--Undead Slayer
["5014"] = 1,--Guild Northrend Dungeon Hero
 
["5433"] = 2,--Guild Champions
["5435"] = 2,--Guild Generals
397,4 → 406,13
["5162"] = 2,--Classy Trolls
["5158"] = 2,--Stay Classy
["5492"] = 2,--Guild Level 25
["5179"] = 2,--Alliance Slayer
["5194"] = 2,--City Attacker
["5177"] = 2,--Draenei Slayer
["5175"] = 2,--Dwarf Slayer
["5176"] = 2,--Gnome Slayer
["5173"] = 2,--Human Slayer
["5174"] = 2,--Night Elf Slayer
["5178"] = 2,--Worgen Slayer
["5124"] = 2,--Guild Northrend Dungeon Hero
}
\ No newline at end of file