comparison Modules/Events.lua @ 7:bbba2fae0f69

Removed some of the extra debugging that isn't neccessary any more and abtracted out the item ids so they can be cached.
author Asa Ayers <Asa.Ayers@Gmail.com>
date Tue, 08 Jun 2010 11:19:16 -0700
parents 5dddd73b2220
children 0271e781b154
comparison
equal deleted inserted replaced
6:5dddd73b2220 7:bbba2fae0f69
10 end 10 end
11 11
12 function addon:MAIL_SHOW() 12 function addon:MAIL_SHOW()
13 self:Debug("MAIL_SHOW") 13 self:Debug("MAIL_SHOW")
14 self.lastMailScan = self:ScanMail() 14 self.lastMailScan = self:ScanMail()
15
15 self:UnregisterEvent("MAIL_SHOW") 16 self:UnregisterEvent("MAIL_SHOW")
16 self:RegisterEvent("MAIL_CLOSED") 17 self:RegisterEvent("MAIL_CLOSED")
17 self:RegisterEvent("MAIL_INBOX_UPDATE") 18 self:RegisterEvent("MAIL_INBOX_UPDATE")
18 self:Debug("MAIL_SHOW complete") 19 self:Debug("MAIL_SHOW complete")
19 end 20 end
20 21
21 function addon:MAIL_CLOSED() 22 function addon:MAIL_CLOSED()
22 addon:UnregisterEvent("MAIL_CLOSED") 23 addon:UnregisterEvent("MAIL_CLOSED")
24 self:MAIL_INBOX_UPDATE()
23 self:UnregisterEvent("MAIL_INBOX_UPDATE") 25 self:UnregisterEvent("MAIL_INBOX_UPDATE")
24 self:RegisterEvent("MAIL_SHOW") 26 self:RegisterEvent("MAIL_SHOW")
25 end 27 end
26 28
27 function addon:MAIL_INBOX_UPDATE() 29 function addon:MAIL_INBOX_UPDATE()
28 local newScan = addon:ScanMail() 30 local newScan = addon:ScanMail()
29 local diff 31 local diff
30 for mailType, collection in pairs(self.lastMailScan) do 32 for mailType, collection in pairs(self.lastMailScan) do
33 newScan[mailType] = (newScan[mailType] or {})
31 for item, total in pairs(collection) do 34 for item, total in pairs(collection) do
32 35
33 diff = total - (newScan[mailType][item] or 0) 36 diff = total - (newScan[mailType][item] or 0)
34 if diff ~= 0 then 37 if diff ~= 0 then
35 self:SaveValue(item, diff) 38 self:SaveValue(item, diff)
73 function addon:UpdateCurrentInventory() 76 function addon:UpdateCurrentInventory()
74 self.lastInventory = self:GetCurrentInventory() 77 self.lastInventory = self:GetCurrentInventory()
75 end 78 end
76 79
77 function addon:UpdateAudit() 80 function addon:UpdateAudit()
78 self:Debug("UpdateAudit") 81 -- self:Debug("UpdateAudit")
79 local currentInventory = self:GetCurrentInventory() 82 local currentInventory = self:GetCurrentInventory()
80 local diff = addon:GetInventoryDiff(self.lastInventory, currentInventory) 83 local diff = addon:GetInventoryDiff(self.lastInventory, currentInventory)
81 -- this is only here for debugging 84 -- this is only here for debugging
82 self.lastdiff = diff 85 self.lastdiff = diff
83 86
92 negativeCount = negativeCount + abs(count) 95 negativeCount = negativeCount + abs(count)
93 end 96 end
94 end 97 end
95 98
96 if diff.money > 0 and utils:tcount(positive) > 0 and utils:tcount(negative) == 0 then 99 if diff.money > 0 and utils:tcount(positive) > 0 and utils:tcount(negative) == 0 then
97 self:Debug("loot") 100 -- self:Debug("loot")
98 elseif abs(diff.money) > 0 and utils:tcount(diff.items) == 1 then 101 elseif utils:tcount(diff.items) == 1 then
99 self:Debug("purchase or sale") 102 -- self:Debug("purchase or sale")
100 103
101 for itemName, count in pairs(diff.items) do 104 for itemName, count in pairs(diff.items) do
102 self:SaveValue(itemName, diff.money) 105 self:SaveValue(itemName, diff.money)
103 end 106 end
104 elseif utils:tcount(diff.items) > 1 then 107 elseif utils:tcount(diff.items) > 1 then
105 108
106 if utils:tcount(positive) > 0 and utils:tcount(negative) > 0 then 109 if utils:tcount(positive) > 0 and utils:tcount(negative) > 0 then
107 -- we must have created/converted something 110 -- we must have created/converted something
108 self:Debug("conversion") 111 -- self:Debug("conversion")
109 local totalChange = 0 112 local totalChange = 0
110 for itemName, change in pairs(negative) do 113 for itemName, change in pairs(negative) do
111 local _, itemCost, count = self:GetItemCost(itemName, change) 114 local _, itemCost, count = self:GetItemCost(itemName, change)
112 self:SaveValue(itemName, abs(itemCost * change)) 115 self:SaveValue(itemName, abs(itemCost * change))
113 116
114 totalChange = totalChange + abs(itemCost * change) 117 totalChange = totalChange + abs(itemCost * change)
115 end 118 end
116 119
117 self:Debug("totalChange") 120 local valuePerItem = totalChange / positiveCount
118 self:Debug(totalChange)
119 121
120 local valuePerItem = totalChange / positiveCount
121 self:Debug(valuePerItem )
122 for itemName, change in pairs(positive) do 122 for itemName, change in pairs(positive) do
123 self:Debug(itemName)
124 self:Debug(0-abs(valuePerItem * change))
125 self:SaveValue(itemName, 0-abs(valuePerItem * change)) 123 self:SaveValue(itemName, 0-abs(valuePerItem * change))
126 end 124 end
127 end 125 end
128 end 126 end
129 127