initial commit
This commit is contained in:
65
LibTSM/Service/AuctionScan.lua
Normal file
65
LibTSM/Service/AuctionScan.lua
Normal file
@@ -0,0 +1,65 @@
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
-- TradeSkillMaster --
|
||||
-- https://tradeskillmaster.com --
|
||||
-- All Rights Reserved - Detailed license information included with addon. --
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
|
||||
--- Auction scanning functions.
|
||||
-- @module AuctionScan
|
||||
|
||||
local _, TSM = ...
|
||||
local AuctionScan = TSM.Init("Service.AuctionScan")
|
||||
local ScanManager = TSM.Include("Service.AuctionScanClasses.ScanManager")
|
||||
|
||||
|
||||
|
||||
-- ============================================================================
|
||||
-- Module Functions
|
||||
-- ============================================================================
|
||||
|
||||
function AuctionScan.GetManager()
|
||||
return ScanManager.Get()
|
||||
end
|
||||
|
||||
function AuctionScan.CanBid(subRow)
|
||||
if not subRow:IsSubRow() then
|
||||
return false
|
||||
end
|
||||
local _, _, _, isHighBidder = subRow:GetBidInfo()
|
||||
local displayedBid = subRow:GetDisplayedBids()
|
||||
local buyout = subRow:GetBuyouts()
|
||||
if isHighBidder then
|
||||
return false
|
||||
elseif displayedBid == buyout then
|
||||
return false
|
||||
elseif not TSM.IsWowClassic() and subRow:IsCommodity() then
|
||||
return false
|
||||
elseif GetMoney() < subRow:GetRequiredBid() then
|
||||
return false
|
||||
end
|
||||
return true
|
||||
end
|
||||
|
||||
function AuctionScan.CanBuyout(subRow, auctionScan)
|
||||
if not subRow:IsSubRow() then
|
||||
return false
|
||||
end
|
||||
local buyout, itemBuyout = subRow:GetBuyouts()
|
||||
if not TSM.IsWowClassic() then
|
||||
buyout = itemBuyout
|
||||
end
|
||||
local itemString = subRow:GetItemString()
|
||||
if buyout == 0 or GetMoney() < buyout then
|
||||
return false
|
||||
elseif not TSM.IsWowClassic() and subRow:IsCommodity() then
|
||||
-- make sure it's the cheapest
|
||||
local isCheapest = false
|
||||
for _, query in auctionScan:QueryIterator() do
|
||||
isCheapest = isCheapest or subRow == query:GetCheapestSubRow(itemString)
|
||||
end
|
||||
if not isCheapest then
|
||||
return false
|
||||
end
|
||||
end
|
||||
return true
|
||||
end
|
||||
Reference in New Issue
Block a user