From a72851d757719ab1f9ce3162c67309ee0272c184 Mon Sep 17 00:00:00 2001 From: Alar of Daggerspine Date: Sat, 8 Aug 2015 12:09:50 +0200 Subject: [PATCH] * *2.6.13* Fix: Message: Interface\AddOns\GarrisonCommander-Broker\ldb.lua:414: attempt to perform arithmetic on local 'r2' (a nil value) in GC-Broker Feature: In follower page, armor and weapon upgrades can be swapped Signed-off-by: Alar of Daggerspine --- CHANGELOG.txt | 6 +- FollowerPage.lua | 17 ++++-- .../GarrisonCommander-Broker.toc | 2 +- GarrisonCommander-Broker/ldb.lua | 60 +++++++++++++++----- GarrisonCommander.lua | 1 + GarrisonCommander.toc | 2 +- 6 files changed, 68 insertions(+), 20 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 0fb70a4..8a2aef2 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,7 +1,11 @@ *GarrisonCommander helps you when choosing the right follower for the right mission* +* *2.6.13* +Fix: Message: Interface\AddOns\GarrisonCommander-Broker\ldb.lua:414: attempt to perform arithmetic on local 'r2' (a nil value) in GC-Broker +Feature: In follower page, armor and weapon upgrades can be swapped + * *2.6.12* -Fix: Colorizing in broker at last wotking as intended +Fix: Colorizing in broker at last working as intended Fix: Anticipating a fixe for a 6.2.1 only bug * *2.6.11* diff --git a/FollowerPage.lua b/FollowerPage.lua index 71e4690..751a026 100644 --- a/FollowerPage.lua +++ b/FollowerPage.lua @@ -114,14 +114,23 @@ function addon:ShowUpgradeButtons(force) addon:SetBoolean("NOCONFIRM",this:GetChecked()) end) end + if (not gf.swapButtons) then + gf.noConfirm=self:GetFactory():Checkbox(gf.Model,self:GetToggle("SWAPBUTTONS"),self:GetVarInfo("SWAPBUTTONS")) + gf.noConfirm:SetPoint("TOPLEFT",0,-40) + gf.noConfirm:Show() + gf.noConfirm:SetScript("OnClick",function(this) + addon:SetBoolean("SWAPBUTTONS",this:GetChecked()) + addon:ShowUpgradeButtons() + end) + end if not gf.upgradeButtons then gf.upgradeButtons ={} end --if not gf.upgradeFrame then gf.upgradeFrame=CreateFrame("Frame",nil,gf.model) end local b=gf.upgradeButtons local upgrades=self:GetUpgrades() - local axpos=243 - local wxpos=7 - local wypos=-135 - local aypos=-135 + local axpos=self:GetBoolean("SWAPBUTTONS") and 7 or 243 + local wxpos=self:GetBoolean("SWAPBUTTONS") and 243 or 7 + local wypos=-155 + local aypos=-155 local used=1 if not gf.followerID then return self:DelayedRefresh(0.1) diff --git a/GarrisonCommander-Broker/GarrisonCommander-Broker.toc b/GarrisonCommander-Broker/GarrisonCommander-Broker.toc index 20873d0..3b11a0c 100644 --- a/GarrisonCommander-Broker/GarrisonCommander-Broker.toc +++ b/GarrisonCommander-Broker/GarrisonCommander-Broker.toc @@ -5,7 +5,7 @@ ## Notes-frFR: Data-Broker pour GarrisonCommander ## Author: Alar of Daggerspine ## Version: @project-version@ 6.2 -## X-Version: 2.6.12 +## X-Version: 2.6.13 ## X-Revision: @project-abbreviated-hash@ ## eMail: alar@aspide.it ## URL: http://wow.aspide.it diff --git a/GarrisonCommander-Broker/ldb.lua b/GarrisonCommander-Broker/ldb.lua index 3bfdf28..1e11369 100644 --- a/GarrisonCommander-Broker/ldb.lua +++ b/GarrisonCommander-Broker/ldb.lua @@ -47,7 +47,6 @@ local NONE=C(NONE,"Red") local DONE=C(DONE,"Green") local NEED=C(NEED,"Red") local IsQuestFlaggedCompleted=IsQuestFlaggedCompleted - local CAPACITANCE_SHIPMENT_COUNT=CAPACITANCE_SHIPMENT_COUNT -- "%d of %d Work Orders Available"; local CAPACITANCE_SHIPMENT_READY=CAPACITANCE_SHIPMENT_READY -- "Work Order ready for pickup!"; local CAPACITANCE_START_WORK_ORDER=CAPACITANCE_START_WORK_ORDER -- "Start Work Order"; @@ -70,7 +69,24 @@ local LE_FOLLOWER_TYPE_SHIPYARD_6_2=_G.LE_FOLLOWER_TYPE_SHIPYARD_6_2 local dbversion=1 local frequency=5 local ldbtimer=nil - +local ColorStrings={ +'00FF00', -- 0 +'33FF00', -- 1 +'66FF00', -- 2 +'99FF00', -- 3 +'CCFF00', -- 4 +'FFFF00', -- 5 +'FFCC00', -- 6 +'FF9900', -- 7 +'FF6500', -- 8 +'FF3200', -- 9 +'FF0000' -- 10 +} +local ColorValues={} +for i=1,#ColorStrings do + local c=ColorStrings[i] + ColorValues[i]={tonumber(c:sub(1,2),16)/255,tonumber(c:sub(3,4),16)/255,tonumber(c:sub(5,6),16)/255} +end local spellids={ [158754]='herb', [158745]='mine', @@ -334,6 +350,7 @@ function addon:OnInitialized() self:RegisterEvent("GARRISON_MISSION_STARTED") self:RegisterEvent("GARRISON_MISSION_NPC_OPENED","ldbCleanup") self:RegisterEvent("ZONE_CHANGED_NEW_AREA") + self:RegisterEvent("SHIPMENT_CRAFTER_CLOSED") self:RegisterEvent("SHIPMENT_CRAFTER_INFO") self:RegisterEvent("SHOW_LOOT_TOAST") --self:RegisterEvent("QUEST_AUTOCOMPLETE",print) @@ -357,7 +374,10 @@ function addon:ApplyFREQUENCY(value) end function addon:SHIPMENT_CRAFTER_INFO(...) self:WorkUpdate(...) - +end +function addon:SHIPMENT_CRAFTER_CLOSED(...) + self:CountEmpty() + workobj:Update() end function addon:SHOW_LOOT_TOAST(event,typeIdentifier, itemLink, quantity, specID, sex, isPersonal, lootSource) if (isPersonal and lootSource==10) then -- GARRISON_CACHE @@ -401,7 +421,12 @@ function addon:OnEnabled() self:ScheduleTimer("DelayedInit",5) end function addon:Gradient(perc) - return self:ColorGradient(perc,1,0,0,1,1,0,0,1,0) + local rc,r,g,b=pcall(self.ColorGradient,self,perc,1,0,0,1,1,0,0,1,0) + if (rc) then + return r,g,b + else + return 0,1,0 + end end function addon:ColorGradient(perc, ...) @@ -495,10 +520,9 @@ end function cacheobj:OnTooltipShow() self:AddLine(GARRISON_CACHE) for k,v in kpairs(addon.db.realm.caches) do - local m=addon.db.realm.cachesize[k] or 500 - local resources=math.min(m,math.floor((time()-v)*(1/600))) - self:AddDoubleLine(k==ns.me and C(k,"green") or C(k,"Orange"),format("%d/%d",resources,m),nil,nil,nil, - addon:ColorGradient(resources/m,0,1,0,1,1,0,1,0,0)) + local t=addon.db.realm.cachesize[k] or 500 + local n=math.min(t,math.floor((time()-v)*(1/600))) + self:AddDoubleLine(k==ns.me and C(k,"green") or C(k,"Orange"),format("%d/%d",n,t),nil,nil,nil,addon:moreIsGood(n,t,true)) -- uses more because n is not the "missing" part end self:AddLine(me,C.Silver()) end @@ -676,14 +700,24 @@ function dataobj:OldUpdate() end self.text=format("%s: %s (Tot: |cff00ff00%d|r) %s: %s",READY,ready,completed,NEXT,prox) end-- Resources rate: 144 a day -function addon:moreIsGood(n,t) +local function convert(perc,numeric) + perc=max(0,min(10,perc)) + if numeric then + return unpack(ColorValues[perc+1]) + else + return ColorStrings[perc+1] + end +end +function addon:lessIsGood(n,t,numeric) -- t = total -- n = counted - local perc= math.floor(1/t*(t-n)*10)/10 - --return 1/t*w - return addon:ColorToString(addon:ColorGradient(perc,1,0,0,1,1,0,0,1,0)),perc + return convert(math.floor(10/t*(t-n)),numeric) +end +function addon:moreIsGood(n,t,numeric) + -- t = total + -- n = counted + return convert(math.floor(10/t*n),numeric) end - --@debug@ local function highdebug(tb) for k,v in pairs(tb) do diff --git a/GarrisonCommander.lua b/GarrisonCommander.lua index 1d72741..57659f5 100644 --- a/GarrisonCommander.lua +++ b/GarrisonCommander.lua @@ -432,6 +432,7 @@ print("Initialize") self:AddToggle("IXP",true,L["Show xp to next level"],L["When checked, show on each follower button missing xp to next level"]) self:AddToggle("UPG",true,L["Show upgrade options"],L["Only meaningful upgrades are shown"]) self:AddToggle("NOCONFIRM",true,L["Don't ask for confirmation"],L["If checked, clicking an upgrade icon will consume the item and upgrade the follower\n|cFFFF0000NO QUESTION ASKED|r"]) + self:AddToggle("SWAPBUTTONS",false,L["Swap upgrades position"],L["IF checked, shows armors on the left and weapons on the right "]) self:AddLabel("Buildings Panel") self:AddToggle("HF",false,L["Hide followers"],L["Do not show follower icon on plots"]) --@debug@ diff --git a/GarrisonCommander.toc b/GarrisonCommander.toc index 1225d9d..8b862d3 100644 --- a/GarrisonCommander.toc +++ b/GarrisonCommander.toc @@ -13,7 +13,7 @@ ## Notes-zhCN: 發送所有的追隨者與點擊多任務 ## Author: Alar of Daggerspine ## Version: @project-version@ 6.2.0 -## X-Version: 2.6.12 +## X-Version: 2.6.13 ## X-Revision: @project-abbreviated-hash@ ## eMail: alar@aspide.it ## URL: http://wow.aspide.it -- 1.7.9.5