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