From d34c69e50bb511763cecb7a77b5c9c6a6f4ab45e Mon Sep 17 00:00:00 2001 From: Alar of Daggerspine Date: Mon, 16 Mar 2015 12:21:06 +0100 Subject: [PATCH] Adds countered icons to followers in tooltip Accout for blizzard functions returning nil (never happened to me but was raised) Signed-off-by: Alar of Daggerspine --- GarrisonCommander.lua | 42 ++++++++++++++++++++++++++++++++---------- 1 file changed, 32 insertions(+), 10 deletions(-) diff --git a/GarrisonCommander.lua b/GarrisonCommander.lua index 4e0c456..fbeb07c 100644 --- a/GarrisonCommander.lua +++ b/GarrisonCommander.lua @@ -558,24 +558,46 @@ function addon:HookedGarrisonMissionButton_AddThreatsToTooltip(missionID) if (GMC:IsShown()) then return end return self:RenderTooltip(missionID) end +function addon:AddIconsToFollower(missionID,useful,followers,members) + for followerID,icons in pairs(followers) do + if not tContains(members,followerID) then + local bias=self:GetBiasColor(followerID,missionID) + if (not useful[followerID]) then + useful[followerID]=format("%04d%s %s ", + 1000-self:GetFollowerData(followerID,'rank',0), + C(self:GetFollowerData(followerID,'rank'),bias), + self:GetFollowerData(followerID,'coloredname') + ) + end + for i=1,#icons do + useful[followerID]=format("%s |T%s:0|t",useful[followerID],icons[i].icon) + end + end + end + +end function addon:AddFollowersToTooltip(missionID) --local f=GarrisonMissionListTooltipThreatsFrame -- Adding All available followers local party=self:GetParty(missionID) local members=party.members - local partystring=strjoin("|",tostringall(unpack(members))) - GameTooltip:AddLine(L["Other useful followers"]) - for followerID,_ in pairs(G.GetFollowersTraitsForMission(missionID)) do - if not tContains(members,followerID) and G.GetFollowerBiasForMission(missionID,followerID) > -0.1 then - GameTooltip:AddDoubleLine(self:GetFollowerData(followerID,'fullname','none'),self:GetFollowerStatus(followerID,true,true)) - end + local useful=new() + local traited=G.GetFollowersTraitsForMission(missionID) + local buffed=G.GetBuffedFollowersForMission(missionID) + if (type(traited)=='table') then + self:AddIconsToFollower(missionID,useful,traited,members) + end + if (type(buffed)=='table') then + self:AddIconsToFollower(missionID,useful,buffed,members) end - GameTooltip:AddLine("---------------------------------------") - for followerID,_ in pairs(G.GetBuffedFollowersForMission(missionID)) do - if not tContains(members,followerID) and G.GetFollowerBiasForMission(missionID,followerID) > -0.1 then - GameTooltip:AddDoubleLine(self:GetFollowerData(followerID,'fullname','none'),self:GetFollowerStatus(followerID,true,true)) + if next(useful) then + table.sort(useful) + GameTooltip:AddDoubleLine(L["Other useful followers"],L["(Ignores low bias ones)"]) + for followerID,data in pairs(useful) do + GameTooltip:AddDoubleLine(data:sub(5),self:GetFollowerStatus(followerID,true,true)) end end + del(useful) local perc=party.perc local q=self:GetDifficultyColor(perc) GameTooltip:AddDoubleLine(GARRISON_MISSION_SUCCESS,format(GARRISON_MISSION_PERCENT_CHANCE,perc),nil,nil,nil,q.r,q.g,q.b) -- 1.7.9.5