diff ProspectMe_Tooltip.lua @ 0:69b46322ff1b v1.2.1-Alpha

Updated Prospect me for initial client v6.0.3 support. Warning, there may be bugs!
author Vynn
date Mon, 15 Dec 2014 22:51:49 -0500
parents
children e6eec48ecf14
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ProspectMe_Tooltip.lua	Mon Dec 15 22:51:49 2014 -0500
@@ -0,0 +1,121 @@
+PM_HERBSUBCLASS = select(6, GetAuctionItemSubClasses(6))
+PM_ORESUBCLASS = select(4, GetAuctionItemSubClasses(6))
+
+function PM_FormatPrice(value)
+
+	local GSC_GOLD="ffffd100"
+	local GSC_SILVER="ffe6e6e6"
+	local GSC_COPPER="ffc8602c"
+
+	local g, s, c
+	local digits = 0
+	local gsc
+
+	g = math.floor(value/10000)
+	s = math.fmod(math.floor(value/100),100)
+	c = math.fmod(value,100)
+
+
+	digits = math.floor(math.log10(value)+1)
+
+	if ( digits < 3 ) then
+		gsc = string.format("   |c%s%2d|r",  GSC_COPPER, c)
+	elseif ( digits < 5 ) then
+		gsc = string.format("|c%s%2d|r |c%s%02d|r", GSC_SILVER, s, GSC_COPPER, c)
+	elseif ( digits < 7 ) then
+		gsc = string.format("|c%s%2d|r |c%s%02d|r", GSC_GOLD, g, GSC_SILVER, s)
+	elseif ( digits < 9 ) then
+		gsc = string.format("|c%s%5d|r", GSC_GOLD, g)
+	else
+		gsc = string.format("|c%s%2.1fk|r", GSC_GOLD, g/1000)
+	end
+
+	return gsc
+end
+
+function PM_GetReturn(containerID)
+	local averageReturn = 0
+	if PM_ResultsTable[containerID].timesProspected > 0 then
+		for itemID, num in pairs(PM_ResultsTable[containerID]) do
+			if itemID ~= "timesProspected" then
+				averageReturn = averageReturn + PM_ItemTable[itemID].price * num 
+			end
+		end
+		averageReturn = averageReturn/PM_ResultsTable[containerID].timesProspected
+	end
+		return tonumber(string.format("%.0f", averageReturn))
+end
+
+local cleared = true
+local function OnTooltipCleared(self)
+   cleared = true   
+end
+ 
+local function OnTooltipSetItem(self)
+	if cleared then
+		local name, tooltipLink = self:GetItem()
+		if tooltipLink then
+			local item = tooltipLink:match("Hitem:(%d+)")
+			if PM_ResultsTable[item] then
+				--NumofEachQuality, Percent of Each Quality
+				self:AddLine(" ")
+				self:AddLine("Prospect Me",0.5,1,0.5)
+				if PM_ItemTable[item].subclass == PM_ORESUBCLASS then
+					self:AddLine("Times Prospected: " .. PM_ResultsTable[item].timesProspected)
+					self:AddDoubleLine("Cost to Prospect: " .. PM_FormatPrice(5 * PM_ItemTable[item].price), " Average Return: " .. PM_FormatPrice(PM_GetReturn(item)))
+				elseif PM_ItemTable[item].subclass == PM_HERBSUBCLASS then
+					self:AddLine("Times Milled: " .. PM_ResultsTable[item].timesProspected)
+					self:AddDoubleLine("Cost to Mill: " .. PM_FormatPrice(5 * PM_ItemTable[item].price), " Average Return: " .. PM_FormatPrice(PM_GetReturn(item)))
+
+				end
+				if PM_GetReturn(item)-(5 * PM_ItemTable[item].price) > 0 then
+					self:AddLine("Estimated Profit: " .. PM_FormatPrice(PM_GetReturn(item)-(5 * PM_ItemTable[item].price)))
+					self:AddLine(" ")
+				else
+					self:AddLine("No profit to be made",1,0,0)
+					self:AddLine(" ")
+				end
+				if PM_Config.results then
+					local t
+					if IsAltKeyDown() == PM_Config.session then
+						t = PM_ResultsTable
+						self:AddDoubleLine("Lifetime Results","Hold/Release Alt to toggle",0.5,0.5,1,0.5,0.5,0.5)
+					else
+						t = PM_SessionTable
+						self:AddDoubleLine("Session Results","Hold/Release Alt to toggle",0.5,0.5,1,0.5,0.5,0.5)
+					end
+					if t[item] then
+						for q = 7, 0, -1 do
+							for result, num in pairs(t[item]) do 
+								if result ~= "timesProspected" and PM_ItemTable[result].quality == q and PM_Config.qualities[q] then
+									local p, n = "", ""
+									if PM_Config.percent then
+										p = num/t[item].timesProspected*100
+										if p < 10 then
+											p = string.format("[%.1f%%]", p)
+										else
+											p = string.format("[%.0f%%]", p)
+										end
+									else
+										p = ""
+									end
+									if PM_Config.number then
+										n = "[" .. num .. "]"
+									else
+										n = ""
+									end
+									self:AddDoubleLine(p .. PM_ItemTable[result].link .. n, PM_FormatPrice(PM_ItemTable[result].price))
+								end
+							end
+						end
+					end
+					self:AddLine(" ")
+				end
+			end
+			cleared = true
+		end
+	end
+end
+ 
+GameTooltip:HookScript("OnTooltipCleared", OnTooltipCleared)
+GameTooltip:HookScript("OnTooltipSetItem", OnTooltipSetItem)
\ No newline at end of file