mischivin@20: --PM_HERBSUBCLASS = select(6, GetAuctionItemSubClasses(6)) mischivin@20: --PM_ORESUBCLASS = select(4, GetAuctionItemSubClasses(6)) mischivin@20: mischivin@20: --Hardcoded until I find a better solution now that GetAuctionItemSubClass() has changed mischivin@20: PM_HERBSUBCLASS = "Herb" mischivin@20: PM_ORESUBCLASS = "Metal & Stone" Vynn@0: Vynn@0: function PM_FormatPrice(value) Vynn@0: Vynn@0: local GSC_GOLD="ffffd100" Vynn@0: local GSC_SILVER="ffe6e6e6" Vynn@0: local GSC_COPPER="ffc8602c" Vynn@0: Vynn@0: local g, s, c Vynn@0: local digits = 0 Vynn@0: local gsc Vynn@0: Vynn@0: g = math.floor(value/10000) Vynn@0: s = math.fmod(math.floor(value/100),100) Vynn@0: c = math.fmod(value,100) Vynn@0: Vynn@0: Vynn@0: digits = math.floor(math.log10(value)+1) Vynn@0: Vynn@0: if ( digits < 3 ) then Vynn@0: gsc = string.format(" |c%s%2d|r", GSC_COPPER, c) Vynn@0: elseif ( digits < 5 ) then Vynn@0: gsc = string.format("|c%s%2d|r |c%s%02d|r", GSC_SILVER, s, GSC_COPPER, c) Vynn@0: elseif ( digits < 7 ) then Vynn@0: gsc = string.format("|c%s%2d|r |c%s%02d|r", GSC_GOLD, g, GSC_SILVER, s) Vynn@0: elseif ( digits < 9 ) then Vynn@0: gsc = string.format("|c%s%5d|r", GSC_GOLD, g) Vynn@0: else Vynn@0: gsc = string.format("|c%s%2.1fk|r", GSC_GOLD, g/1000) Vynn@0: end Vynn@0: Vynn@0: return gsc Vynn@0: end Vynn@0: Vynn@0: function PM_GetReturn(containerID) Vynn@0: local averageReturn = 0 Vynn@0: if PM_ResultsTable[containerID].timesProspected > 0 then Vynn@0: for itemID, num in pairs(PM_ResultsTable[containerID]) do Vynn@0: if itemID ~= "timesProspected" then Vynn@0: averageReturn = averageReturn + PM_ItemTable[itemID].price * num Vynn@0: end Vynn@0: end Vynn@0: averageReturn = averageReturn/PM_ResultsTable[containerID].timesProspected Vynn@0: end Vynn@0: return tonumber(string.format("%.0f", averageReturn)) Vynn@0: end Vynn@0: Vynn@0: local cleared = true Vynn@0: local function OnTooltipCleared(self) Vynn@0: cleared = true Vynn@0: end Vynn@0: Vynn@0: local function OnTooltipSetItem(self) Vynn@0: if cleared then Vynn@0: local name, tooltipLink = self:GetItem() Vynn@0: if tooltipLink then Vynn@0: local item = tooltipLink:match("Hitem:(%d+)") Vynn@0: if PM_ResultsTable[item] then mischivin@13: local lifetimeReturn = PM_GetReturn(item) Vynn@0: --NumofEachQuality, Percent of Each Quality Vynn@0: self:AddLine(" ") Vynn@0: self:AddLine("Prospect Me",0.5,1,0.5) mischivin@20: -- Subclass Detection is broken in Legion - may need to hard-code this or find another way of getting locatlizes subclass names. Vynn@0: if PM_ItemTable[item].subclass == PM_ORESUBCLASS then Vynn@0: self:AddLine("Times Prospected: " .. PM_ResultsTable[item].timesProspected) Vynn@0: self:AddDoubleLine("Cost to Prospect: " .. PM_FormatPrice(5 * PM_ItemTable[item].price), " Average Return: " .. PM_FormatPrice(PM_GetReturn(item))) Vynn@0: elseif PM_ItemTable[item].subclass == PM_HERBSUBCLASS then Vynn@0: self:AddLine("Times Milled: " .. PM_ResultsTable[item].timesProspected) Vynn@0: self:AddDoubleLine("Cost to Mill: " .. PM_FormatPrice(5 * PM_ItemTable[item].price), " Average Return: " .. PM_FormatPrice(PM_GetReturn(item))) Vynn@0: Vynn@0: end mischivin@13: if lifetimeReturn-(5 * PM_ItemTable[item].price) > 0 then mischivin@13: self:AddLine("Estimated Profit: " .. PM_FormatPrice(lifetimeReturn-(5 * PM_ItemTable[item].price))) Vynn@0: self:AddLine(" ") Vynn@0: else Vynn@0: self:AddLine("No profit to be made",1,0,0) Vynn@0: self:AddLine(" ") Vynn@0: end Vynn@0: if PM_Config.results then Vynn@0: local t Vynn@0: if IsAltKeyDown() == PM_Config.session then Vynn@0: t = PM_ResultsTable Vynn@0: self:AddDoubleLine("Lifetime Results","Hold/Release Alt to toggle",0.5,0.5,1,0.5,0.5,0.5) Vynn@0: else Vynn@0: t = PM_SessionTable Vynn@0: self:AddDoubleLine("Session Results","Hold/Release Alt to toggle",0.5,0.5,1,0.5,0.5,0.5) Vynn@0: end Vynn@0: if t[item] then Vynn@0: for q = 7, 0, -1 do Vynn@0: for result, num in pairs(t[item]) do Vynn@0: if result ~= "timesProspected" and PM_ItemTable[result].quality == q and PM_Config.qualities[q] then Vynn@0: local p, n = "", "" Vynn@0: if PM_Config.percent then Vynn@0: p = num/t[item].timesProspected*100 Vynn@0: if p < 10 then Vynn@0: p = string.format("[%.1f%%]", p) Vynn@0: else Vynn@0: p = string.format("[%.0f%%]", p) Vynn@0: end Vynn@0: else Vynn@0: p = "" Vynn@0: end Vynn@0: if PM_Config.number then Vynn@0: n = "[" .. num .. "]" Vynn@0: else Vynn@0: n = "" Vynn@0: end Vynn@0: self:AddDoubleLine(p .. PM_ItemTable[result].link .. n, PM_FormatPrice(PM_ItemTable[result].price)) Vynn@0: end Vynn@0: end Vynn@0: end Vynn@0: end Vynn@0: self:AddLine(" ") Vynn@0: end Vynn@0: end Vynn@0: cleared = true Vynn@0: end Vynn@0: end Vynn@0: end Vynn@0: Vynn@0: GameTooltip:HookScript("OnTooltipCleared", OnTooltipCleared) Vynn@0: GameTooltip:HookScript("OnTooltipSetItem", OnTooltipSetItem)