comparison Modules/Scanner.lua @ 218:07263a435f3c

Merchant restocking now takes the price threshold into account.
author Zerotorescue
date Sun, 06 Feb 2011 19:27:20 +0100
parents 12a8ea5af671
children 24e71ed0a422
comparison
equal deleted inserted replaced
217:ca05b8ade1ea 218:07263a435f3c
352 -- Go through all groups 352 -- Go through all groups
353 for groupName, values in pairs(addon.db.profile.groups) do 353 for groupName, values in pairs(addon.db.profile.groups) do
354 -- Settings 354 -- Settings
355 local trackAt = addon:GetOptionByKey(groupName, "trackAtCharacters"); 355 local trackAt = addon:GetOptionByKey(groupName, "trackAtCharacters");
356 local localItemData = addon:GetOptionByKey(groupName, "localItemData"); 356 local localItemData = addon:GetOptionByKey(groupName, "localItemData");
357 local requiredItems, bonusQueue, minCraftingQueue, isRefillEnabled; 357 local requiredItems, bonusQueue, priceThreshold, minCraftingQueue, isRefillEnabled;
358 if isRestock then 358 if isRestock then
359 requiredItems = addon:GetOptionByKey(groupName, "restockTarget"); 359 requiredItems = addon:GetOptionByKey(groupName, "restockTarget");
360 bonusQueue = addon:GetOptionByKey(groupName, "bonusQueue"); 360 bonusQueue = addon:GetOptionByKey(groupName, "bonusQueue");
361 priceThreshold = addon:GetOptionByKey(groupName, "priceThreshold");
361 minCraftingQueue = floor( addon:GetOptionByKey(groupName, "minCraftingQueue") * requiredItems ); -- If the minCraftingQueue is 5% and restockTarget is 60, this will result in 3 362 minCraftingQueue = floor( addon:GetOptionByKey(groupName, "minCraftingQueue") * requiredItems ); -- If the minCraftingQueue is 5% and restockTarget is 60, this will result in 3
362 else 363 else
363 isRefillEnabled = addon:GetOptionByKey(groupName, "autoRefill"); 364 isRefillEnabled = addon:GetOptionByKey(groupName, "autoRefill");
364 requiredItems = addon:GetOptionByKey(groupName, "minLocalStock"); 365 requiredItems = addon:GetOptionByKey(groupName, "minLocalStock");
365 end 366 end
388 389
389 missingItems = floor( ( missingItems * ( bonusQueue + 1 ) ) + .5 ); -- round 390 missingItems = floor( ( missingItems * ( bonusQueue + 1 ) ) + .5 ); -- round
390 end 391 end
391 392
392 if missingItems > 0 and (not isRestock or missingItems >= minCraftingQueue) then 393 if missingItems > 0 and (not isRestock or missingItems >= minCraftingQueue) then
393 -- Check how many are available 394
394 local availableItems = ((containerItem.totalCount) or 0); 395 -- Get auction value when it is relevant
395 -- Calculate how many we'll be moving (less missing than available? use missing, otherwise use available) 396 local value = (isRestock and priceThreshold ~= 0 and addon:GetAuctionValue(IdToItemLink(itemId), groupName));
396 -- -1 available items indicates unlimited amount, in that case we must cap at missing items
397 local moving = (((availableItems == -1 or missingItems <= availableItems) and missingItems) or availableItems);
398 397
399 if availableItems == -1 or availableItems > 0 then 398 if not isRestock or priceThreshold == 0 or value == -1 or value >= priceThreshold then
400 addon:Debug("Insufficient %s but this location has %d (moving %d)", IdToItemLink(itemId), availableItems, moving); 399 -- Check how many are available
400 local availableItems = ((containerItem.totalCount) or 0);
401 -- Calculate how many we'll be moving (less missing than available? use missing, otherwise use available)
402 -- -1 available items indicates unlimited amount, in that case we must cap at missing items
403 local moving = (((availableItems == -1 or missingItems <= availableItems) and missingItems) or availableItems);
401 404
402 Mover:AddMove(itemId, moving, missingItems, availableItems, containerItem.price); 405 if availableItems == -1 or availableItems > 0 then
406 addon:Debug("Insufficient %s but this location has %d (moving %d)", IdToItemLink(itemId), availableItems, moving);
407
408 Mover:AddMove(itemId, moving, missingItems, availableItems, containerItem.price);
409 end
403 end 410 end
404 end 411 end
405 end 412 end
406 end 413 end
407 end 414 end