comparison Core.lua @ 133:5eefa40e2a29

Trimmed trailing spaces
author Asa Ayers <Asa.Ayers@Gmail.com>
date Wed, 15 Sep 2010 21:34:57 -0700
parents 0eaec1b52a63
children a529a4a4ccbe
comparison
equal deleted inserted replaced
132:0eaec1b52a63 133:5eefa40e2a29
81 allMailboxes[UnitName("player")] = {} 81 allMailboxes[UnitName("player")] = {}
82 end 82 end
83 myMailbox = allMailboxes[UnitName("player")] 83 myMailbox = allMailboxes[UnitName("player")]
84 84
85 self.optionsFrame = LibStub("AceConfigDialog-3.0"):AddToBlizOptions("ItemAuditor", "ItemAuditor") 85 self.optionsFrame = LibStub("AceConfigDialog-3.0"):AddToBlizOptions("ItemAuditor", "ItemAuditor")
86 86
87 LibStub("AceConfig-3.0"):RegisterOptionsTable("ItemAuditor", ItemAuditor.Options, {"ia"}) 87 LibStub("AceConfig-3.0"):RegisterOptionsTable("ItemAuditor", ItemAuditor.Options, {"ia"})
88 ItemAuditor:RegisterFrame(ItemAuditor_DebugFrame) 88 ItemAuditor:RegisterFrame(ItemAuditor_DebugFrame)
89 89
90 LibStub("AceConsole-3.0"):RegisterChatCommand('rl', ReloadUI) 90 LibStub("AceConsole-3.0"):RegisterChatCommand('rl', ReloadUI)
91 91
92 if self.db.char.crafting_threshold then 92 if self.db.char.crafting_threshold then
93 local threshold = self.db.char.crafting_threshold 93 local threshold = self.db.char.crafting_threshold
94 if threshold == 1 then 94 if threshold == 1 then
96 elseif threshold == 2 then 96 elseif threshold == 2 then
97 self.db.char.profitable_threshold = 10000 97 self.db.char.profitable_threshold = 10000
98 elseif threshold == 3 then 98 elseif threshold == 3 then
99 self.db.char.profitable_threshold = 50000 99 self.db.char.profitable_threshold = 50000
100 end 100 end
101 101
102 self.db.char.crafting_threshold = nil 102 self.db.char.crafting_threshold = nil
103 end 103 end
104 104
105 ItemAuditor:IsQAEnabled() 105 ItemAuditor:IsQAEnabled()
106 106
114 end 114 end
115 115
116 116
117 117
118 local registeredEvents = {} 118 local registeredEvents = {}
119 local originalRegisterEvent = ItemAuditor.RegisterEvent 119 local originalRegisterEvent = ItemAuditor.RegisterEvent
120 function ItemAuditor:RegisterEvent(event, callback, arg) 120 function ItemAuditor:RegisterEvent(event, callback, arg)
121 registeredEvents[event] = true 121 registeredEvents[event] = true
122 if arg ~= nil then 122 if arg ~= nil then
123 return originalRegisterEvent(self, event, callback, arg) 123 return originalRegisterEvent(self, event, callback, arg)
124 elseif callback ~= nil then 124 elseif callback ~= nil then
161 end 161 end
162 if value == 0 then 162 if value == 0 then
163 self.db.factionrealm.item_account[itemName] = nil 163 self.db.factionrealm.item_account[itemName] = nil
164 end 164 end
165 end 165 end
166 166
167 for link, data in pairs(self.db.factionrealm.items) do 167 for link, data in pairs(self.db.factionrealm.items) do
168 if self:GetItem(link).count == 0 or self:GetItem(link).invested == 0 then 168 if self:GetItem(link).count == 0 or self:GetItem(link).invested == 0 then
169 self:RemoveItem(link) 169 self:RemoveItem(link)
170 end 170 end
171 end 171 end
172 172
173 self:RefreshQAGroups() 173 self:RefreshQAGroups()
174 end 174 end
175 175
176 -- Options doesn't exist when this file is created the first time, so getOptions will 176 -- Options doesn't exist when this file is created the first time, so getOptions will
177 -- make one call to :GetModule and return the result and replace itself with a 177 -- make one call to :GetModule and return the result and replace itself with a
178 -- function that simply returns the same object. The permanent solution will probably be 178 -- function that simply returns the same object. The permanent solution will probably be
179 -- to move :Print to a different module. 179 -- to move :Print to a different module.
180 local function getOptions() 180 local function getOptions()
181 local Options = ItemAuditor:GetModule("Options") 181 local Options = ItemAuditor:GetModule("Options")
182 getOptions = function() return Options end 182 getOptions = function() return Options end
210 210
211 function ItemAuditor:GetCurrentInventory() 211 function ItemAuditor:GetCurrentInventory()
212 local i = {} 212 local i = {}
213 local bagID 213 local bagID
214 local slotID 214 local slotID
215 215
216 for bagID = 0, NUM_BAG_SLOTS do 216 for bagID = 0, NUM_BAG_SLOTS do
217 scanBag(bagID, i) 217 scanBag(bagID, i)
218 end 218 end
219 219
220 if bankOpen then 220 if bankOpen then
221 scanBag(BANK_CONTAINER, i) 221 scanBag(BANK_CONTAINER, i)
222 for bagID = NUM_BAG_SLOTS+1, NUM_BANKBAGSLOTS do 222 for bagID = NUM_BAG_SLOTS+1, NUM_BANKBAGSLOTS do
223 scanBag(bagID, i) 223 scanBag(bagID, i)
224 end 224 end
225 end 225 end
226 226
227 return {items = i, money = GetMoney()} 227 return {items = i, money = GetMoney()}
228 end 228 end
229 229
230 function ItemAuditor:GetInventoryDiff(pastInventory, current) 230 function ItemAuditor:GetInventoryDiff(pastInventory, current)
231 if current == nil then 231 if current == nil then
237 if pastInventory.items[link] == nil then 237 if pastInventory.items[link] == nil then
238 diff[link] = count 238 diff[link] = count
239 self:Debug("1 diff[" .. link .. "]=" .. diff[link]) 239 self:Debug("1 diff[" .. link .. "]=" .. diff[link])
240 elseif count - pastInventory.items[link] ~= 0 then 240 elseif count - pastInventory.items[link] ~= 0 then
241 diff[link] = count - pastInventory.items[link] 241 diff[link] = count - pastInventory.items[link]
242 self:Debug("2 diff[" .. link .. "]=" .. diff[link]) 242 self:Debug("2 diff[" .. link .. "]=" .. diff[link])
243 end 243 end
244 end 244 end
245 245
246 for link, count in pairs(pastInventory.items) do 246 for link, count in pairs(pastInventory.items) do
247 if current.items[link] == nil then 247 if current.items[link] == nil then
248 diff[link] = -count 248 diff[link] = -count
249 self:Debug("3 diff[" .. link .. "]=" .. diff[link]) 249 self:Debug("3 diff[" .. link .. "]=" .. diff[link])
250 elseif current.items[link] - count ~= 0 then 250 elseif current.items[link] - count ~= 0 then
251 diff[link] = current.items[link] - pastInventory.items[link] 251 diff[link] = current.items[link] - pastInventory.items[link]
252 self:Debug("4 diff[" .. link .. "]=" .. diff[link]) 252 self:Debug("4 diff[" .. link .. "]=" .. diff[link])
253 end 253 end
254 end 254 end
255 255
256 local moneyDiff = current.money - pastInventory.money 256 local moneyDiff = current.money - pastInventory.money
257 if abs(moneyDiff) > 0 then 257 if abs(moneyDiff) > 0 then
264 local inboundCOD = {} 264 local inboundCOD = {}
265 local skipMail = {} 265 local skipMail = {}
266 function ItemAuditor:ScanMail() 266 function ItemAuditor:ScanMail()
267 local results = {} 267 local results = {}
268 local CODPaymentRegex = gsub(COD_PAYMENT, "%%s", "(.*)") 268 local CODPaymentRegex = gsub(COD_PAYMENT, "%%s", "(.*)")
269 269
270 for mailIndex = 1, GetInboxNumItems() or 0 do 270 for mailIndex = 1, GetInboxNumItems() or 0 do
271 local sender, msgSubject, msgMoney, msgCOD, daysLeft, msgItem, _, _, msgText, _, isGM = select(3, GetInboxHeaderInfo(mailIndex)) 271 local sender, msgSubject, msgMoney, msgCOD, daysLeft, msgItem, _, _, msgText, _, isGM = select(3, GetInboxHeaderInfo(mailIndex))
272 local mailType = self:GetMailType(msgSubject) 272 local mailType = self:GetMailType(msgSubject)
273 273
274 local mailSignature = msgSubject .. '-' .. msgMoney .. '-' .. msgCOD .. '-' .. daysLeft 274 local mailSignature = msgSubject .. '-' .. msgMoney .. '-' .. msgCOD .. '-' .. daysLeft
275 275
276 results[mailType] = (results[mailType] or {}) 276 results[mailType] = (results[mailType] or {})
277 277
278 if skipMail[mailSignature] ~= nil then 278 if skipMail[mailSignature] ~= nil then
279 -- do nothing 279 -- do nothing
280 elseif mailType == "NonAHMail" and msgCOD > 0 then 280 elseif mailType == "NonAHMail" and msgCOD > 0 then
281 mailType = 'COD' 281 mailType = 'COD'
282 results[mailType] = (results[mailType] or {}) 282 results[mailType] = (results[mailType] or {})
283 283
284 local itemTypes = {} 284 local itemTypes = {}
285 for itemIndex = 1, ATTACHMENTS_MAX_RECEIVE do 285 for itemIndex = 1, ATTACHMENTS_MAX_RECEIVE do
286 local itemName, _, count, _, _= GetInboxItem(mailIndex, itemIndex) 286 local itemName, _, count, _, _= GetInboxItem(mailIndex, itemIndex)
287 if itemName ~= nil then 287 if itemName ~= nil then
288 itemTypes[itemName] = (itemTypes[itemName] or 0) + count 288 itemTypes[itemName] = (itemTypes[itemName] or 0) + count
289 end 289 end
290 end 290 end
291 291
292 if self:tcount(itemTypes) == 1 then 292 if self:tcount(itemTypes) == 1 then
293 for itemName, count in pairs(itemTypes) do 293 for itemName, count in pairs(itemTypes) do
294 results[mailType][itemName] = (results[mailType][itemName] or {total=0,count=0}) 294 results[mailType][itemName] = (results[mailType][itemName] or {total=0,count=0})
295 results[mailType][itemName].total = results[mailType][itemName].total + msgCOD 295 results[mailType][itemName].total = results[mailType][itemName].total + msgCOD
296 296
297 if inboundCOD[mailSignature] == nil then 297 if inboundCOD[mailSignature] == nil then
298 results[mailType][itemName].count = results[mailType][itemName].count + count 298 results[mailType][itemName].count = results[mailType][itemName].count + count
299 inboundCOD[mailSignature] = (inboundCOD[mailSignature] or 0) + count 299 inboundCOD[mailSignature] = (inboundCOD[mailSignature] or 0) + count
300 else 300 else
301 results[mailType][itemName].count = inboundCOD[mailSignature] 301 results[mailType][itemName].count = inboundCOD[mailSignature]
302 end 302 end
303 303
304 304
305 end 305 end
306 else 306 else
307 self:Debug("Don't know what to do with more than one item type on COD mail.") 307 self:Debug("Don't know what to do with more than one item type on COD mail.")
308 end 308 end
309 elseif mailType == "CODPayment" then 309 elseif mailType == "CODPayment" then
310 -- /dump ItemAuditor.db.factionrealm.outbound_cod 310 -- /dump ItemAuditor.db.factionrealm.outbound_cod
311 self:Debug(msgSubject) 311 self:Debug(msgSubject)
312 self:Debug(CODPaymentRegex) 312 self:Debug(CODPaymentRegex)
313 local outboundSubject = select(3, msgSubject:find(CODPaymentRegex)) 313 local outboundSubject = select(3, msgSubject:find(CODPaymentRegex))
314 local trackID 314 local trackID
315 if outboundSubject ~= nil then 315 if outboundSubject ~= nil then
316 self:Debug(outboundSubject) 316 self:Debug(outboundSubject)
317 trackID = select(3, outboundSubject:find('[[]IA: (%d*)[]]')) 317 trackID = select(3, outboundSubject:find('[[]IA: (%d*)[]]'))
318 318
319 if trackID ~= nil then 319 if trackID ~= nil then
320 trackID = tonumber(trackID) 320 trackID = tonumber(trackID)
321 self:Debug('COD ID: %s', trackID) 321 self:Debug('COD ID: %s', trackID)
322 local cod = self.db.factionrealm.outbound_cod[trackID] 322 local cod = self.db.factionrealm.outbound_cod[trackID]
323 if cod == nil then 323 if cod == nil then
324 skipMail[mailSignature] = true 324 skipMail[mailSignature] = true
325 self:Print("WARNING: {%s} has an invalid ItemAuditor tracking number.", msgSubject) 325 self:Print("WARNING: {%s} has an invalid ItemAuditor tracking number.", msgSubject)
326 else 326 else
327 itemName = trackID .. "|" .. cod['link'] 327 itemName = trackID .. "|" .. cod['link']
328 328
329 329
330 results[mailType][itemName] = (results[mailType][itemName] or {total=0,count=0}) 330 results[mailType][itemName] = (results[mailType][itemName] or {total=0,count=0})
331 results[mailType][itemName].total = results[mailType][itemName].total - msgMoney 331 results[mailType][itemName].total = results[mailType][itemName].total - msgMoney
332 results[mailType][itemName].count = results[mailType][itemName].count - cod.count 332 results[mailType][itemName].count = results[mailType][itemName].count - cod.count
333 end 333 end
334 end 334 end
335 end 335 end
336 336
337 if trackID == nil then 337 if trackID == nil then
338 skipMail[mailSignature] = true 338 skipMail[mailSignature] = true
339 self:Print("WARNING: {%s} is a COD payment but doesn't have an ItemAuditor tracking number.", msgSubject) 339 self:Print("WARNING: {%s} is a COD payment but doesn't have an ItemAuditor tracking number.", msgSubject)
340 end 340 end
341 341
342 elseif mailType == "AHSuccess" then 342 elseif mailType == "AHSuccess" then
343 local invoiceType, itemName, playerName, bid, buyout, deposit, consignment = GetInboxInvoiceInfo(mailIndex); 343 local invoiceType, itemName, playerName, bid, buyout, deposit, consignment = GetInboxInvoiceInfo(mailIndex);
344 results[mailType][itemName] = (results[mailType][itemName] or {total=0,count=0}) 344 results[mailType][itemName] = (results[mailType][itemName] or {total=0,count=0})
345 results[mailType][itemName].total = results[mailType][itemName].total - deposit - buyout + consignment 345 results[mailType][itemName].total = results[mailType][itemName].total - deposit - buyout + consignment
346 346
347 347
348 elseif mailType == "AHWon" then 348 elseif mailType == "AHWon" then
349 local invoiceType, itemName, playerName, bid, buyout, deposit, consignment = GetInboxInvoiceInfo(mailIndex); 349 local invoiceType, itemName, playerName, bid, buyout, deposit, consignment = GetInboxInvoiceInfo(mailIndex);
350 results[mailType][itemName] = (results[mailType][itemName] or {total=0,count=0}) 350 results[mailType][itemName] = (results[mailType][itemName] or {total=0,count=0})
351 results[mailType][itemName].total = results[mailType][itemName].total + bid 351 results[mailType][itemName].total = results[mailType][itemName].total + bid
352 352
353 local count = select(3, GetInboxItem(mailIndex,1)) 353 local count = select(3, GetInboxItem(mailIndex,1))
354 results[mailType][itemName].count = results[mailType][itemName].count + count 354 results[mailType][itemName].count = results[mailType][itemName].count + count
355 elseif mailType == "AHExpired" or mailType == "AHCancelled" or mailType == "AHOutbid" then 355 elseif mailType == "AHExpired" or mailType == "AHCancelled" or mailType == "AHOutbid" then
356 -- These should be handled when you pay the deposit at the AH 356 -- These should be handled when you pay the deposit at the AH
357 else 357 else
370 count = data.count, 370 count = data.count,
371 } 371 }
372 -- self:Print(format("|cFF00FF00MailScan|r: %s - %s - %s x %s", mailType, item, data.total, data.count)) 372 -- self:Print(format("|cFF00FF00MailScan|r: %s - %s - %s x %s", mailType, item, data.total, data.count))
373 end 373 end
374 end 374 end
375 return results 375 return results
376 end 376 end
377 377
378 local realm = GetRealmName() 378 local realm = GetRealmName()
379 local ds_account = 'Default' 379 local ds_account = 'Default'
380 function ItemAuditor:GetItemCount(searchID) 380 function ItemAuditor:GetItemCount(searchID)
409 409
410 function ItemAuditor:GetItem(link, viewOnly) 410 function ItemAuditor:GetItem(link, viewOnly)
411 if viewOnly == nil then 411 if viewOnly == nil then
412 viewOnly = false 412 viewOnly = false
413 end 413 end
414 414
415 local itemName = nil 415 local itemName = nil
416 if self:GetSafeLink(link) == nil then 416 if self:GetSafeLink(link) == nil then
417 itemName = link 417 itemName = link
418 else 418 else
419 link = self:GetSafeLink(link) 419 link = self:GetSafeLink(link)
420 itemName = GetItemInfo(link) 420 itemName = GetItemInfo(link)
421 end 421 end
422 422
423 423
424 if self.db.factionrealm.item_account[itemName] ~= nil then 424 if self.db.factionrealm.item_account[itemName] ~= nil then
425 self.db.factionrealm.items[link] = { 425 self.db.factionrealm.items[link] = {
426 count = ItemAuditor:GetItemCount(self:GetIDFromLink(link)), 426 count = ItemAuditor:GetItemCount(self:GetIDFromLink(link)),
427 invested = abs(self.db.factionrealm.item_account[itemName] or 0), 427 invested = abs(self.db.factionrealm.item_account[itemName] or 0),
428 } 428 }
429 self.db.factionrealm.item_account[itemName] = nil 429 self.db.factionrealm.item_account[itemName] = nil
430 end 430 end
431 431
432 if viewOnly == false and self.db.factionrealm.items[link] == nil then 432 if viewOnly == false and self.db.factionrealm.items[link] == nil then
433 433
434 self.db.factionrealm.items[link] = { 434 self.db.factionrealm.items[link] = {
435 count = ItemAuditor:GetItemCount(self:GetIDFromLink(link)), 435 count = ItemAuditor:GetItemCount(self:GetIDFromLink(link)),
436 invested = abs(self.db.factionrealm.item_account[itemName] or 0), 436 invested = abs(self.db.factionrealm.item_account[itemName] or 0),
437 } 437 }
438 438
439 end 439 end
440 440
441 if self.db.factionrealm.items[link] ~= nil then 441 if self.db.factionrealm.items[link] ~= nil then
442 self.db.factionrealm.items[link].count = ItemAuditor:GetItemCount(self:GetIDFromLink(link)) 442 self.db.factionrealm.items[link].count = ItemAuditor:GetItemCount(self:GetIDFromLink(link))
443 443
444 if self.db.factionrealm.items[link].invested == nil then 444 if self.db.factionrealm.items[link].invested == nil then
445 self.db.factionrealm.items[link].invested = 0 445 self.db.factionrealm.items[link].invested = 0
446 end 446 end
447 end 447 end
448 448
449 if viewOnly == true and self.db.factionrealm.items[link] == nil then 449 if viewOnly == true and self.db.factionrealm.items[link] == nil then
450 return {count = 0, invested = 0} 450 return {count = 0, invested = 0}
451 elseif viewOnly == true then 451 elseif viewOnly == true then
452 452
453 return {count = self.db.factionrealm.items[link].count, invested = self.db.factionrealm.items[link].invested} 453 return {count = self.db.factionrealm.items[link].count, invested = self.db.factionrealm.items[link].invested}
454 end 454 end
455 455
456 456
457 457
458 return self.db.factionrealm.items[link] 458 return self.db.factionrealm.items[link]
459 end 459 end
460 460
461 function ItemAuditor:RemoveItem(link) 461 function ItemAuditor:RemoveItem(link)
462 self.db.factionrealm.item_account[link] = nil 462 self.db.factionrealm.item_account[link] = nil
479 itemName = link 479 itemName = link
480 self:Debug('SaveValue: GetSafeLink failed, falling back to storing by name: ' .. tostring(itemName)) 480 self:Debug('SaveValue: GetSafeLink failed, falling back to storing by name: ' .. tostring(itemName))
481 self.db.factionrealm.item_account[itemName] = (self.db.factionrealm.item_account[itemName] or 0) + value 481 self.db.factionrealm.item_account[itemName] = (self.db.factionrealm.item_account[itemName] or 0) + value
482 item = {invested = self.db.factionrealm.item_account[itemName], count = 1} 482 item = {invested = self.db.factionrealm.item_account[itemName], count = 1}
483 else 483 else
484 484
485 item = self:GetItem(realLink) 485 item = self:GetItem(realLink)
486 item.invested = item.invested + value 486 item.invested = item.invested + value
487 itemName = GetItemInfo(realLink) 487 itemName = GetItemInfo(realLink)
488 end 488 end
489 489
490 if value > 0 and countChange > 0 and item.invested == value and item.count ~= countChange then 490 if value > 0 and countChange > 0 and item.invested == value and item.count ~= countChange then
491 local costPerItem = value / countChange 491 local costPerItem = value / countChange
492 value = costPerItem * item.count 492 value = costPerItem * item.count
493 item.invested = value 493 item.invested = value
494 self:Print("You already owned %s %s with an unknown price, so they have also been updated to %s each", (item.count - countChange), itemName, self:FormatMoney(costPerItem)) 494 self:Print("You already owned %s %s with an unknown price, so they have also been updated to %s each", (item.count - countChange), itemName, self:FormatMoney(costPerItem))
495 end 495 end
496 496
497 if abs(value) > 0 then 497 if abs(value) > 0 then
498 if item.invested < 0 then 498 if item.invested < 0 then
499 if self.db.profile.messages.cost_updates then 499 if self.db.profile.messages.cost_updates then
500 self:Print(format("Updated price of %s from %s to %s. |cFF00FF00You just made a profit of %s.", itemName, self:FormatMoney(item.invested - value), self:FormatMoney(0), self:FormatMoney(abs(item.invested)))) 500 self:Print(format("Updated price of %s from %s to %s. |cFF00FF00You just made a profit of %s.", itemName, self:FormatMoney(item.invested - value), self:FormatMoney(0), self:FormatMoney(abs(item.invested))))
501 end 501 end
502 self:RemoveItem(link) 502 self:RemoveItem(link)
503 -- This doesn't work when you mail the only copy of an item you have to another character. 503 -- This doesn't work when you mail the only copy of an item you have to another character.
504 --[[ 504 --[[
505 elseif item.count == 0 and realLink and ItemAuditor:GetItemCount(self:GetIDFromLink(realLink)) then 505 elseif item.count == 0 and realLink and ItemAuditor:GetItemCount(self:GetIDFromLink(realLink)) then
506 self:Print("You ran out of " .. itemName .. " and never recovered " .. self:FormatMoney(item.invested)) 506 self:Print("You ran out of " .. itemName .. " and never recovered " .. self:FormatMoney(item.invested))
507 self:RemoveItem(link) 507 self:RemoveItem(link)
508 ]] 508 ]]
509 else 509 else
510 if self.db.profile.messages.cost_updates then 510 if self.db.profile.messages.cost_updates then
511 self:Print(format("Updated price of %s from %s to %s. (total change:%s)", itemName, self:FormatMoney(item.invested - value), self:FormatMoney(item.invested), self:FormatMoney(value))) 511 self:Print(format("Updated price of %s from %s to %s. (total change:%s)", itemName, self:FormatMoney(item.invested - value), self:FormatMoney(item.invested), self:FormatMoney(value)))
512 end 512 end
513 end 513 end
514 end 514 end
515 515
516 if realLink ~= nil then 516 if realLink ~= nil then
517 ItemAuditor:UpdateQAThreshold(realLink) 517 ItemAuditor:UpdateQAThreshold(realLink)
518 self:SendMessage("IA_COST_CHANGED", realLink, unpack({ItemAuditor:GetItemCost(realLink)})) 518 self:SendMessage("IA_COST_CHANGED", realLink, unpack({ItemAuditor:GetItemCost(realLink)}))
519 end 519 end
520 UpdateInvestedData() 520 UpdateInvestedData()
562 function ItemAuditor:GetItemCost(link, countModifier) 562 function ItemAuditor:GetItemCost(link, countModifier)
563 local item = self:GetItem(link, true) 563 local item = self:GetItem(link, true)
564 564
565 if item.invested > 0 then 565 if item.invested > 0 then
566 local count = item.count 566 local count = item.count
567 567
568 if countModifier ~= nil then 568 if countModifier ~= nil then
569 count = count - countModifier 569 count = count - countModifier
570 end 570 end
571 if count > 0 then 571 if count > 0 then
572 return ceil(item.invested), ceil(item.invested/count), count 572 return ceil(item.invested), ceil(item.invested/count), count
573 end 573 end
574 return ceil(item.invested), 0, count 574 return ceil(item.invested), 0, count
575 end 575 end
576 return 0, 0, ItemAuditor:GetItemCount(ItemAuditor:GetIDFromLink(link)) 576 return 0, 0, ItemAuditor:GetItemCount(ItemAuditor:GetIDFromLink(link))