Mercurial > wow > itemauditor
comparison Modules/Events.lua @ 3:bbcf81868171
Code cleanup.
author | Asa Ayers <Asa.Ayers@Gmail.com> |
---|---|
date | Sat, 22 May 2010 11:34:19 -0700 |
parents | |
children | c940b527ccab |
comparison
equal
deleted
inserted
replaced
2:e9a1646beaa4 | 3:bbcf81868171 |
---|---|
1 local addonName, addonTable = ...; | |
2 local addon = _G[addonName] | |
3 | |
4 local utils = addonTable.utils | |
5 | |
6 function addon:PLAYER_ENTERING_WORLD() | |
7 self:RegisterEvent("MAIL_SHOW") | |
8 self:WatchBags() | |
9 end | |
10 | |
11 function addon:MAIL_SHOW() | |
12 self:Debug("MAIL_SHOW") | |
13 self.lastMailScan = self:ScanMail() | |
14 self:UnregisterEvent("MAIL_SHOW") | |
15 self:RegisterEvent("MAIL_CLOSED") | |
16 self:RegisterEvent("MAIL_INBOX_UPDATE") | |
17 self:Debug("MAIL_SHOW complete") | |
18 end | |
19 | |
20 function addon:MAIL_CLOSED() | |
21 addon:UnregisterEvent("MAIL_CLOSED") | |
22 self:UnregisterEvent("MAIL_INBOX_UPDATE") | |
23 self:RegisterEvent("MAIL_SHOW") | |
24 end | |
25 | |
26 function addon:MAIL_INBOX_UPDATE() | |
27 local newScan = addon:ScanMail() | |
28 local diff | |
29 for item, total in pairs(self.lastMailScan) do | |
30 | |
31 if newScan[item] == nil then | |
32 newScan[item] = 0 | |
33 end | |
34 diff = total - newScan[item] | |
35 if diff ~= 0 then | |
36 self:SaveValue(item, diff) | |
37 end | |
38 | |
39 end | |
40 | |
41 self.lastMailScan = newScan | |
42 end | |
43 | |
44 function addon:UNIT_SPELLCAST_SENT(target, spell) | |
45 if target == "player" and spell = "Milling" then | |
46 | |
47 end | |
48 end | |
49 | |
50 function addon:UNIT_SPELLCAST_INTERRUPTED(target, spell) | |
51 | |
52 end | |
53 | |
54 function addon:UpdateAudit() | |
55 self:Debug("UpdateAudit") | |
56 local currentInventory = self:GetCurrentInventory() | |
57 local diff = addon:GetInventoryDiff(self.lastInventory, currentInventory) | |
58 -- this is only here for debugging | |
59 self.lastdiff = diff | |
60 | |
61 if abs(diff.money) > 0 and utils:tcount(diff.items) == 1 then | |
62 self:Debug("purchase or sale") | |
63 | |
64 for itemName, count in pairs(diff.items) do | |
65 self:SaveValue(itemName, diff.money) | |
66 end | |
67 elseif utils:tcount(diff.items) > 1 then | |
68 local positive, negative = {}, {} | |
69 local positiveCount, negativeCount = 0, 0 | |
70 for item, count in pairs(diff.items) do | |
71 if count > 0 then | |
72 positive[item] = count | |
73 positiveCount = positiveCount + count | |
74 elseif count < 0 then | |
75 negative[item] = count | |
76 negativeCount = negativeCount + abs(count) | |
77 end | |
78 end | |
79 | |
80 if utils:tcount(positive) > 0 and utils:tcount(negative) > 0 then | |
81 -- we must have created/converted something | |
82 self:Debug("conversion") | |
83 local totalChange = 0 | |
84 for itemName, change in pairs(negative) do | |
85 local _, itemCost, count = self:GetItemCost(itemName, change) | |
86 self:SaveValue(itemName, abs(itemCost * change)) | |
87 | |
88 totalChange = totalChange + abs(itemCost * change) | |
89 end | |
90 | |
91 self:Debug("totalChange") | |
92 self:Debug(totalChange) | |
93 | |
94 local valuePerItem = totalChange / positiveCount | |
95 self:Debug(valuePerItem ) | |
96 for itemName, change in pairs(positive) do | |
97 self:Debug(itemName) | |
98 self:Debug(0-abs(valuePerItem * change)) | |
99 self:SaveValue(itemName, 0-abs(valuePerItem * change)) | |
100 end | |
101 end | |
102 end | |
103 | |
104 self.lastInventory = currentInventory | |
105 end |