comparison Modules/Events.lua @ 51:84bfb5469189

Merged and closed ticket7
author Asa Ayers <Asa.Ayers@Gmail.com>
date Wed, 21 Jul 2010 01:22:30 -0700
parents 9ff6a3b02332
children 9c95158236d1
comparison
equal deleted inserted replaced
48:508110e7c8ee 51:84bfb5469189
222 222
223 function addon:UpdateCurrentInventory() 223 function addon:UpdateCurrentInventory()
224 self.lastInventory = self:GetCurrentInventory() 224 self.lastInventory = self:GetCurrentInventory()
225 end 225 end
226 226
227 local function distributeValue(self, totalValue, targetItems)
228
229 local weights = {}
230 local totalWeight = 0
231 for link, change in pairs(targetItems) do
232 --[[
233 If something has never been seen on the AH, it must not be very valuable.
234 I'm using 1c so it doesn't have much weight and I can't get a devided by zero error.
235 The only time I know that this is a problem is when crafting a BOP item, and it
236 is always crafted 1 at a time, so a weight of 1 will work.
237 ]]
238 local ap = (addon:GetAuctionPrice(link) or 1)
239 totalWeight = totalWeight + ap
240 weights[link] = ap
241 end
242
243 local valuePerPoint = totalValue / totalWeight
244
245 for link, change in pairs(targetItems) do
246 self:SaveValue(link, weights[link] * valuePerPoint, change)
247 end
248 end
249
227 function addon:UpdateAudit() 250 function addon:UpdateAudit()
228 -- self:Debug("UpdateAudit " .. event) 251 -- self:Debug("UpdateAudit " .. event)
229 local currentInventory = self:GetCurrentInventory() 252 local currentInventory = self:GetCurrentInventory()
230 local diff = addon:GetInventoryDiff(self.lastInventory, currentInventory) 253 local diff = addon:GetInventoryDiff(self.lastInventory, currentInventory)
231 254
264 self:SaveValue(link, itemCost * change, change) 287 self:SaveValue(link, itemCost * change, change)
265 288
266 totalChange = totalChange + (itemCost * abs(change)) 289 totalChange = totalChange + (itemCost * abs(change))
267 end 290 end
268 291
269 local valuePerItem = totalChange / positiveCount 292 distributeValue(self, totalChange, positive)
270
271 for link, change in pairs(positive) do
272 self:SaveValue(link, valuePerItem * change, change)
273 end
274 else 293 else
275 self:Debug("No match in UpdateAudit.") 294 self:Debug("No match in UpdateAudit.")
276 end 295 end
277 296
278 self.lastInventory = currentInventory 297 self.lastInventory = currentInventory