Mercurial > wow > prospect-me
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