annotate Modules/Tooltip.lua @ 74:71de6e86a1a4 release 2010-07-29

Fixed a bug where tradeskill that don't produce items, like Inscription Research, cause IA to crash. Added some API enhancements. Added ArkInventory as an optional dependency so it will be loaded before IA.
author Asa Ayers <Asa.Ayers@Gmail.com>
date Thu, 29 Jul 2010 22:33:50 -0700
parents e7d287cc3b02
children 574c154d24ab
rev   line source
Asa@63 1 local ItemAuditor = select(2, ...)
Asa@63 2 local Tooltip = ItemAuditor:NewModule("Tooltip")
Asa@3 3
Asa@3 4 local function ShowTipWithPricing(tip, link, num)
Asa@3 5 if (link == nil) then
Asa@3 6 return;
Asa@3 7 end
Asa@3 8
Asa@8 9 -- local itemName, itemLink, itemRarity, itemLevel, itemMinLevel, itemType, _, _, _, _, itemVendorPrice = GetItemInfo (link);
Asa@3 10 -- 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?")
Asa@3 11
Asa@8 12 local investedTotal, investedPerItem, count = ItemAuditor:GetItemCost(link)
Asa@3 13
Asa@63 14 local keep = 1 - ItemAuditor:GetAHCut()
Asa@12 15 local show = false
Asa@3 16
Asa@3 17 if investedTotal > 0 then
Asa@34 18 local suggestColor
Asa@63 19 local ap = ItemAuditor:GetAuctionPrice(link)
Asa@34 20 if ap == nil then
Asa@34 21 suggestColor = nil
Asa@34 22 elseif ap > ceil(investedPerItem/keep) then
Asa@34 23 suggestColor = "|cFF00FF00" -- green
Asa@34 24 else
Asa@34 25 suggestColor = "|cFFFF0000" -- red
Asa@34 26 end
Asa@34 27
Asa@34 28
Asa@63 29 tip:AddDoubleLine("\124cffffffffIA: Total Invested", ItemAuditor:FormatMoney(investedTotal));
Asa@63 30 tip:AddDoubleLine("\124cffffffffIA: Invested per Item (own: " .. count .. ")", ItemAuditor:FormatMoney(ceil(investedPerItem)));
Asa@63 31 tip:AddDoubleLine("\124cffffffffIA: Minimum " .. ItemAuditor:GetAHFaction() .. " AH Price: ", ItemAuditor:FormatMoney(ceil(investedPerItem/keep), suggestColor))
Asa@12 32 show = true
Asa@12 33
Asa@12 34 end
Asa@13 35
Asa@63 36 if ItemAuditor:IsQAEnabled() then
Asa@13 37 local groupName = QAAPI:GetItemGroup(link)
Asa@13 38 if groupName then
Asa@62 39 local threshold = QAAPI:GetGroupConfig(groupName)
Asa@63 40 tip:AddDoubleLine("\124cffffffffIA: QA Threshold: ", ItemAuditor:FormatMoney(threshold))
Asa@13 41 show = true
Asa@13 42 end
Asa@12 43 end
Asa@12 44
Asa@12 45 if show then
Asa@3 46 tip:Show()
Asa@3 47 end
Asa@3 48 end
Asa@3 49
Asa@3 50 hooksecurefunc (GameTooltip, "SetBagItem",
Asa@3 51 function(tip, bag, slot)
Asa@3 52 local _, num = GetContainerItemInfo(bag, slot);
Asa@3 53 ShowTipWithPricing (tip, GetContainerItemLink(bag, slot), num);
Asa@3 54 end
Asa@3 55 );
Asa@3 56
Asa@3 57 hooksecurefunc (GameTooltip, "SetAuctionItem",
Asa@3 58 function (tip, type, index)
Asa@3 59 ShowTipWithPricing (tip, GetAuctionItemLink(type, index));
Asa@3 60 end
Asa@3 61 );
Asa@3 62
Asa@3 63 hooksecurefunc (GameTooltip, "SetAuctionSellItem",
Asa@3 64 function (tip)
Asa@3 65 local name, _, count = GetAuctionSellItemInfo();
Asa@3 66 local __, link = GetItemInfo(name);
Asa@3 67 ShowTipWithPricing (tip, link, num);
Asa@3 68 end
Asa@3 69 );
Asa@3 70
Asa@3 71
Asa@3 72 hooksecurefunc (GameTooltip, "SetLootItem",
Asa@3 73 function (tip, slot)
Asa@3 74 if LootSlotIsItem(slot) then
Asa@3 75 local link, _, num = GetLootSlotLink(slot);
Asa@3 76 ShowTipWithPricing (tip, link, num);
Asa@3 77 end
Asa@3 78 end
Asa@3 79 );
Asa@3 80
Asa@3 81 hooksecurefunc (GameTooltip, "SetLootRollItem",
Asa@3 82 function (tip, slot)
Asa@3 83 local _, _, num = GetLootRollItemInfo(slot);
Asa@3 84 ShowTipWithPricing (tip, GetLootRollItemLink(slot), num);
Asa@3 85 end
Asa@3 86 );
Asa@3 87
Asa@3 88
Asa@3 89 hooksecurefunc (GameTooltip, "SetInventoryItem",
Asa@3 90 function (tip, unit, slot)
Asa@3 91 ShowTipWithPricing (tip, GetInventoryItemLink(unit, slot), GetInventoryItemCount(unit, slot));
Asa@3 92 end
Asa@3 93 );
Asa@3 94
Asa@3 95 hooksecurefunc (GameTooltip, "SetGuildBankItem",
Asa@3 96 function (tip, tab, slot)
Asa@3 97 local _, num = GetGuildBankItemInfo(tab, slot);
Asa@3 98 ShowTipWithPricing (tip, GetGuildBankItemLink(tab, slot), num);
Asa@3 99 end
Asa@3 100 );
Asa@3 101
Asa@3 102 hooksecurefunc (GameTooltip, "SetTradeSkillItem",
Asa@3 103 function (tip, skill, id)
Asa@3 104 local link = GetTradeSkillItemLink(skill);
Asa@3 105 local num = GetTradeSkillNumMade(skill);
Asa@3 106 if id then
Asa@3 107 link = GetTradeSkillReagentItemLink(skill, id);
Asa@3 108 num = select (3, GetTradeSkillReagentInfo(skill, id));
Asa@3 109 end
Asa@3 110
Asa@3 111 ShowTipWithPricing (tip, link, num);
Asa@3 112 end
Asa@3 113 );
Asa@3 114
Asa@3 115 hooksecurefunc (GameTooltip, "SetTradePlayerItem",
Asa@3 116 function (tip, id)
Asa@3 117 local _, _, num = GetTradePlayerItemInfo(id);
Asa@3 118 ShowTipWithPricing (tip, GetTradePlayerItemLink(id), num);
Asa@3 119 end
Asa@3 120 );
Asa@3 121
Asa@3 122 hooksecurefunc (GameTooltip, "SetTradeTargetItem",
Asa@3 123 function (tip, id)
Asa@3 124 local _, _, num = GetTradeTargetItemInfo(id);
Asa@3 125 ShowTipWithPricing (tip, GetTradeTargetItemLink(id), num);
Asa@3 126 end
Asa@3 127 );
Asa@3 128
Asa@3 129 hooksecurefunc (GameTooltip, "SetQuestItem",
Asa@3 130 function (tip, type, index)
Asa@3 131 local _, _, num = GetQuestItemInfo(type, index);
Asa@3 132 ShowTipWithPricing (tip, GetQuestItemLink(type, index), num);
Asa@3 133 end
Asa@3 134 );
Asa@3 135
Asa@3 136 hooksecurefunc (GameTooltip, "SetQuestLogItem",
Asa@3 137 function (tip, type, index)
Asa@3 138 local num, _;
Asa@3 139 if type == "choice" then
Asa@3 140 _, _, num = GetQuestLogChoiceInfo(index);
Asa@3 141 else
Asa@3 142 _, _, num = GetQuestLogRewardInfo(index)
Asa@3 143 end
Asa@3 144
Asa@3 145 ShowTipWithPricing (tip, GetQuestLogItemLink(type, index), num);
Asa@3 146 end
Asa@3 147 );
Asa@3 148
Asa@3 149 hooksecurefunc (GameTooltip, "SetInboxItem",
Asa@3 150 function (tip, index, attachIndex)
Asa@3 151 local _, _, num = GetInboxItem(index, attachIndex);
Asa@3 152 ShowTipWithPricing (tip, GetInboxItemLink(index, attachIndex), num);
Asa@3 153 end
Asa@3 154 );
Asa@3 155
Asa@3 156 hooksecurefunc (GameTooltip, "SetSendMailItem",
Asa@3 157 function (tip, id)
Asa@3 158 local name, _, num = GetSendMailItem(id)
Asa@3 159 local name, link = GetItemInfo(name);
Asa@3 160 ShowTipWithPricing (tip, link, num);
Asa@3 161 end
Asa@3 162 );
Asa@3 163
Asa@3 164 hooksecurefunc (GameTooltip, "SetHyperlink",
Asa@3 165 function (tip, itemstring, num)
Asa@3 166 local name, link = GetItemInfo (itemstring);
Asa@3 167 ShowTipWithPricing (tip, link, num);
Asa@3 168 end
Asa@3 169 );
Asa@3 170
Asa@3 171 hooksecurefunc (ItemRefTooltip, "SetHyperlink",
Asa@3 172 function (tip, itemstring)
Asa@3 173 local name, link = GetItemInfo (itemstring);
Asa@3 174 ShowTipWithPricing (tip, link);
Asa@3 175 end
Asa@3 176 );