-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathAuctionHouseConfirmQuantity.lua
81 lines (73 loc) · 2.64 KB
/
AuctionHouseConfirmQuantity.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
local _, private = ...
local GetItemInfo = (GetItemInfo or C_Item.GetItemInfo)
private.BuyNow = function(itemID, quantity)
C_AuctionHouse.ConfirmCommoditiesPurchase(itemID, quantity)
end
private.CustomStartCommoditiesPurchase = function(self, itemID, quantity, unitPrice, totalPrice)
if (quantity > 1) then
local _, link, _ = GetItemInfo(itemID)
local data = {
itemID = itemID,
count = quantity,
unitPrice = unitPrice,
totalPrice = totalPrice,
link = link,
useLinkForItemInfo = true,
};
StaticPopup_Show('AUCTION_HOUSE_CONFIRM_PURCHASE_AMOUNT', quantity, link, data)
return
end
self.BuyDialog:SetItemID(itemID, quantity, unitPrice, totalPrice);
self.BuyDialog:Show();
C_AuctionHouse.StartCommoditiesPurchase(itemID, quantity, unitPrice);
end
if (C_AddOns.IsAddOnLoaded('Blizzard_AuctionHouseUI')) then
AuctionHouseFrame.StartCommoditiesPurchase = private.CustomStartCommoditiesPurchase
else
private.frame = CreateFrame('Frame')
private.frame:HookScript('OnEvent', function(self, event, addon, ...)
if addon == 'Blizzard_AuctionHouseUI' then
AuctionHouseFrame.StartCommoditiesPurchase = private.CustomStartCommoditiesPurchase
end
end)
private.frame:RegisterEvent('ADDON_LOADED')
end
StaticPopupDialogs['AUCTION_HOUSE_CONFIRM_PURCHASE_AMOUNT'] = {
text = 'You selected to buy %s %s, please confirm this.',
button1 = 'Confirm',
button2 = 'Cancel',
OnShow = function(popup, data)
popup.button1:Disable()
MoneyFrame_Update(popup.moneyFrame, data.totalPrice)
C_AuctionHouse.StartCommoditiesPurchase(data.itemID, data.count, data.unitPrice);
local itemFrame = popup.itemFrame
itemFrame:ClearAllPoints();
itemFrame:SetPoint('BOTTOM', popup, 'BOTTOM', -60, 80)
end,
OnAccept = function(popup, data)
private.BuyNow(data.itemID, data.count)
end,
EditBoxOnEscapePressed = function(editBox)
editBox:GetParent():Hide()
end,
EditBoxOnEnterPressed = function(editBox)
local popup = editBox:GetParent()
if popup.button1:IsEnabled() then
StaticPopup_OnClick(popup, 1)
end
end,
EditBoxOnTextChanged = function(editBox, data)
if (editBox:GetText() == data.count .. '') then
editBox:GetParent().button1:Enable()
else
editBox:GetParent().button1:Disable()
end
end,
hasItemFrame = true,
hasMoneyFrame = true,
hasEditBox = true,
timeout = 0,
whileDead = true,
hideOnEscape = true,
preferredIndex = 3,
}