Mercurial > wow > itemauditor
view Modules/Tooltip.lua @ 121:f7efbd879062
Update GetItemCost to return the total invested even if you have none of that item left. If you sell all of an item but are waiting for the mail to arrive, you can still see how much you have invested even though you don't actually own any more of that item.
author | Asa Ayers <Asa.Ayers@Gmail.com> |
---|---|
date | Thu, 02 Sep 2010 21:40:08 -0700 |
parents | 79dc87430cb3 |
children | 451d8a19edea |
line wrap: on
line source
local ItemAuditor = select(2, ...) local Tooltip = ItemAuditor:NewModule("Tooltip") local function ShowTipWithPricing(tip, link, num) if (link == nil) then return; end -- local itemName, itemLink, itemRarity, itemLevel, itemMinLevel, itemType, _, _, _, _, itemVendorPrice = GetItemInfo (link); -- local _, _, Color, Ltype, Id, Enchant, Gem1, Gem2, Gem3, Gem4, Suffix, Unique, LinkLvl, Name = string.find(link, "|?c?f?f?(%x*)|?H?([^:]*):?(%d+):?(%d*):?(%d*):?(%d*):?(%d*):?(%d*):?(%-?%d*):?(%-?%d*):?(%d*)|?h?%[?([^%[%]]*)%]?|?h?|?r?") local investedTotal, investedPerItem, count = ItemAuditor:GetItemCost(link) local keep = 1 - ItemAuditor:GetAHCut() local show = false if investedTotal > 0 then local suggestColor local ap = ItemAuditor:GetAuctionPrice(link) if ap == nil then suggestColor = nil elseif ap >= ceil(investedPerItem/keep) then suggestColor = "|cFF00FF00" -- green else suggestColor = "|cFFFF0000" -- red end tip:AddDoubleLine("\124cffffffffIA: Total Invested", ItemAuditor:FormatMoney(investedTotal)); tip:AddDoubleLine("\124cffffffffIA: Invested per Item (own: " .. count .. ")", ItemAuditor:FormatMoney(ceil(investedPerItem))); tip:AddDoubleLine("\124cffffffffIA: Minimum " .. ItemAuditor:GetAHFaction() .. " AH Price: ", ItemAuditor:FormatMoney(ceil(investedPerItem/keep), suggestColor)) show = true end if ItemAuditor:IsQACompatible() then local groupName = QAAPI:GetItemGroup(link) if groupName then local threshold = QAAPI:GetGroupConfig(groupName) tip:AddDoubleLine("\124cffffffffIA: QA Threshold: ", ItemAuditor:FormatMoney(threshold)) show = true end end if show then tip:Show() end end hooksecurefunc (GameTooltip, "SetBagItem", function(tip, bag, slot) local _, num = GetContainerItemInfo(bag, slot); ShowTipWithPricing (tip, GetContainerItemLink(bag, slot), num); end ); hooksecurefunc (GameTooltip, "SetAuctionItem", function (tip, type, index) ShowTipWithPricing (tip, GetAuctionItemLink(type, index)); end ); hooksecurefunc (GameTooltip, "SetAuctionSellItem", function (tip) local name, _, count = GetAuctionSellItemInfo(); local __, link = GetItemInfo(name); ShowTipWithPricing (tip, link, num); end ); hooksecurefunc (GameTooltip, "SetLootItem", function (tip, slot) if LootSlotIsItem(slot) then local link, _, num = GetLootSlotLink(slot); ShowTipWithPricing (tip, link, num); end end ); hooksecurefunc (GameTooltip, "SetLootRollItem", function (tip, slot) local _, _, num = GetLootRollItemInfo(slot); ShowTipWithPricing (tip, GetLootRollItemLink(slot), num); end ); hooksecurefunc (GameTooltip, "SetInventoryItem", function (tip, unit, slot) ShowTipWithPricing (tip, GetInventoryItemLink(unit, slot), GetInventoryItemCount(unit, slot)); end ); hooksecurefunc (GameTooltip, "SetGuildBankItem", function (tip, tab, slot) local _, num = GetGuildBankItemInfo(tab, slot); ShowTipWithPricing (tip, GetGuildBankItemLink(tab, slot), num); end ); hooksecurefunc (GameTooltip, "SetTradeSkillItem", function (tip, skill, id) local link = GetTradeSkillItemLink(skill); local num = GetTradeSkillNumMade(skill); if id then link = GetTradeSkillReagentItemLink(skill, id); num = select (3, GetTradeSkillReagentInfo(skill, id)); end ShowTipWithPricing (tip, link, num); end ); hooksecurefunc (GameTooltip, "SetTradePlayerItem", function (tip, id) local _, _, num = GetTradePlayerItemInfo(id); ShowTipWithPricing (tip, GetTradePlayerItemLink(id), num); end ); hooksecurefunc (GameTooltip, "SetTradeTargetItem", function (tip, id) local _, _, num = GetTradeTargetItemInfo(id); ShowTipWithPricing (tip, GetTradeTargetItemLink(id), num); end ); hooksecurefunc (GameTooltip, "SetQuestItem", function (tip, type, index) local _, _, num = GetQuestItemInfo(type, index); ShowTipWithPricing (tip, GetQuestItemLink(type, index), num); end ); hooksecurefunc (GameTooltip, "SetQuestLogItem", function (tip, type, index) local num, _; if type == "choice" then _, _, num = GetQuestLogChoiceInfo(index); else _, _, num = GetQuestLogRewardInfo(index) end ShowTipWithPricing (tip, GetQuestLogItemLink(type, index), num); end ); hooksecurefunc (GameTooltip, "SetInboxItem", function (tip, index, attachIndex) local _, _, num = GetInboxItem(index, attachIndex); ShowTipWithPricing (tip, GetInboxItemLink(index, attachIndex), num); end ); hooksecurefunc (GameTooltip, "SetSendMailItem", function (tip, id) local name, _, num = GetSendMailItem(id) local name, link = GetItemInfo(name); ShowTipWithPricing (tip, link, num); end ); hooksecurefunc (GameTooltip, "SetHyperlink", function (tip, itemstring, num) local name, link = GetItemInfo (itemstring); ShowTipWithPricing (tip, link, num); end ); hooksecurefunc (ItemRefTooltip, "SetHyperlink", function (tip, itemstring) local name, link = GetItemInfo (itemstring); ShowTipWithPricing (tip, link); end );