Quantcast

* *2.6.13*

Alar of Daggerspine [08-08-15 - 10:09]
* *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 <alar@aspide.it>
Filename
CHANGELOG.txt
FollowerPage.lua
GarrisonCommander-Broker/GarrisonCommander-Broker.toc
GarrisonCommander-Broker/ldb.lua
GarrisonCommander.lua
GarrisonCommander.toc
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