completely separated auctions and bids

This commit is contained in:
Manuel Simon Hirsig
2015-11-23 04:04:36 +01:00
parent 2b57c3447a
commit 3f35b5f2b8
7 changed files with 83 additions and 170 deletions
+34 -80
View File
@@ -163,10 +163,10 @@ function public.update_auction_records()
end
function public.update_listing()
AuxManageFrameListingAuctionListing:Show()
Aux.sheet.populate(AuxManageFrameListingAuctionListing.sheet, auction_records)
AuxManageFrameListing:SetWidth(AuxManageFrameListingAuctionListing:GetWidth() + 40)
AuxFrame:SetWidth(AuxManageFrameListing:GetWidth() + 15)
AuxAuctionsFrameListingAuctionListing:Show()
Aux.sheet.populate(AuxAuctionsFrameListingAuctionListing.sheet, auction_records)
AuxAuctionsFrameListing:SetWidth(AuxAuctionsFrameListingAuctionListing:GetWidth() + 40)
AuxFrame:SetWidth(AuxAuctionsFrameListing:GetWidth() + 15)
end
function private.create_record(auction_info)
@@ -189,7 +189,6 @@ function private.create_record(auction_info)
signature = Aux.auction_signature(auction_info.hyperlink, aux_quantity, bid, auction_info.buyout_price),
name = auction_info.name,
level = auction_info.level,
tooltip = auction_info.tooltip,
aux_quantity = aux_quantity,
buyout_price = buyout_price,
@@ -198,8 +197,6 @@ function private.create_record(auction_info)
hyperlink = auction_info.hyperlink,
itemstring = auction_info.itemstring,
bid = bid,
bid_per_unit = Aux_Round(bid / aux_quantity),
owner = auction_info.owner,
duration = auction_info.duration,
usable = auction_info.usable,
high_bidder = auction_info.high_bidder,
@@ -218,33 +215,23 @@ end
function public.dialog_cancel()
Aux.log('Aborted.')
Aux.scan.abort()
AuxManageFrameListingDialog:Hide()
AuxAuctionsFrameListingDialog:Hide()
public.update_listing()
end
function private.find_auction(entry, action, express_mode)
function private.find_auction(entry, express_mode)
if entry.gone then
Aux.log('Auction not available')
return
end
if action == 'buyout' and not entry.buyout_price then
Aux.log('Auction has no buyout price')
return
end
local amount
if action == 'buyout' then
amount = entry.buyout_price
elseif action == 'bid' then
amount = entry.bid
end
Aux.log('Processing '..action..' request for '..entry.hyperlink..' x '..entry.aux_quantity..' at '..Aux.util.money_string(amount)..' ...')
Aux.log('Processing cancelation request for '..entry.hyperlink..' x '..entry.aux_quantity..' at '..Aux.util.money_string(amount)..' ...')
if not express_mode then
private.show_dialog(action, entry, amount)
private.show_dialog(entry)
end
PlaySound('igMainMenuOptionCheckBoxOn')
@@ -252,7 +239,7 @@ function private.find_auction(entry, action, express_mode)
local found
Aux.scan.start{
type = action == 'cancel' and 'owner' or 'bidder',
type = 'owner',
page = entry.page,
on_read_auction = function(auction_info, ctrl)
@@ -264,38 +251,22 @@ function private.find_auction(entry, action, express_mode)
Aux.log('Matching auction found.'..(express_mode and '' or ' Awaiting confirmation ...'))
if express_mode then
if action == 'cancel' then
CancelAuction(auction_info.index)
entry.gone = true
Aux.log('Canceled'..auction_record.hyperlink..' x '..auction_record.aux_quantity)
elseif GetMoney() >= amount then
PlaceAuctionBid('bidder', auction_info.index, amount)
Aux.log((action == 'buyout' and 'Purchased ' or 'Bid on ')..auction_record.hyperlink..' x '..auction_record.aux_quantity..' at '..Aux.util.money_string(amount)..'.')
entry.gone = true
else
Aux.log((action == 'buyout' and 'Purchase' or 'Bid')..' failed: Not enough money.')
end
CancelAuction(auction_info.index)
entry.gone = true
Aux.log('Canceled'..auction_record.hyperlink..' x '..auction_record.aux_quantity)
Aux.scan.abort()
else
public.dialog_action = function()
if private.create_record(Aux.info.auction(auction_info.index, action == 'cancel' and 'owner' or 'bidder')).signature == entry.signature then
if action == 'cancel' then
CancelAuction(auction_info.index)
entry.gone = true
Aux.log('Canceled'..auction_record.hyperlink..' x '..auction_record.aux_quantity)
elseif GetMoney() >= amount then
PlaceAuctionBid('bidder', auction_info.index, action == 'bid' and MoneyInputFrame_GetCopper(AuxManageFrameListingDialogContentBid) or amount)
Aux.log((action == 'buyout' and 'Purchased ' or 'Bid on ')..auction_record.hyperlink..' x '..auction_record.aux_quantity..' at '..Aux.util.money_string(action == 'bid' and MoneyInputFrame_GetCopper(AuxManageFrameListingDialogContentBid) or amount)..'.')
entry.gone = true
else
Aux.log('Not enough money.')
end
if private.create_record(Aux.info.auction(auction_info.index, 'owner')).signature == entry.signature then
CancelAuction(auction_info.index)
entry.gone = true
Aux.log('Canceled'..auction_record.hyperlink..' x '..auction_record.aux_quantity)
Aux.scan.abort()
AuxManageFrameListingDialog:Hide()
AuxAuctionsFrameListingDialog:Hide()
public.update_listing()
end
end
AuxManageFrameListingDialogContentActionButton:Enable()
AuxAuctionsFrameListingDialogContentActionButton:Enable()
end
end
end,
@@ -324,49 +295,32 @@ function public.on_auction_click(auction_record)
if IsControlKeyDown() then
DressUpItemLink(auction_record.hyperlink)
else
private.find_auction(auction_record, 'cancel', express_mode)
private.find_auction(auction_record, express_mode)
end
end
function private.show_dialog(action, entry, amount)
AuxManageFrameListingDialogContentItem.itemstring = Aux.info.itemstring(entry.item_id, entry.suffix_id, entry.unique_id, entry.enchant_id)
AuxManageFrameListingDialogContentItem.EnhTooltip_info = entry.EnhTooltip_info
function private.show_dialog(entry)
AuxAuctionsFrameListingDialogContentItem.itemstring = Aux.info.itemstring(entry.item_id, entry.suffix_id, entry.unique_id, entry.enchant_id)
AuxAuctionsFrameListingDialogContentItem.EnhTooltip_info = entry.EnhTooltip_info
AuxManageFrameListingDialogContentActionButton:Disable()
AuxManageFrameListingDialogContentItemIconTexture:SetTexture(Aux.info.item(entry.item_id).texture)
AuxManageFrameListingDialogContentItemName:SetText(entry.name)
AuxAuctionsFrameListingDialogContentActionButton:Disable()
AuxAuctionsFrameListingDialogContentItemIconTexture:SetTexture(Aux.info.item(entry.item_id).texture)
AuxAuctionsFrameListingDialogContentItemName:SetText(entry.name)
local color = ITEM_QUALITY_COLORS[entry.quality]
AuxManageFrameListingDialogContentItemName:SetTextColor(color.r, color.g, color.b)
AuxAuctionsFrameListingDialogContentItemName:SetTextColor(color.r, color.g, color.b)
if entry.aux_quantity > 1 then
AuxManageFrameListingDialogContentItemCount:SetText(entry.aux_quantity);
AuxManageFrameListingDialogContentItemCount:Show()
AuxAuctionsFrameListingDialogContentItemCount:SetText(entry.aux_quantity);
AuxAuctionsFrameListingDialogContentItemCount:Show()
else
AuxManageFrameListingDialogContentItemCount:Hide()
AuxAuctionsFrameListingDialogContentItemCount:Hide()
end
if action == 'buyout' then
AuxManageFrameListingDialogContentActionButton:SetText('Buy')
AuxManageFrameListingDialogContentCancelButton:SetText('Cancel')
MoneyFrame_Update('AuxManageFrameListingDialogContentBuyoutPrice', amount)
AuxManageFrameListingDialogContentBid:Hide()
AuxManageFrameListingDialogContentCancelLabel:Hide()
AuxManageFrameListingDialogContentBuyoutPrice:Show()
elseif action == 'bid' then
AuxManageFrameListingDialogContentActionButton:SetText('Bid')
AuxManageFrameListingDialogContentCancelButton:SetText('Cancel')
MoneyInputFrame_SetCopper(AuxManageFrameListingDialogContentBid, amount)
AuxManageFrameListingDialogContentBuyoutPrice:Hide()
AuxManageFrameListingDialogContentCancelLabel:Hide()
AuxManageFrameListingDialogContentBid:Show()
elseif action == 'cancel' then
AuxManageFrameListingDialogContentBid:Hide()
AuxManageFrameListingDialogContentBuyoutPrice:Hide()
AuxManageFrameListingDialogContentCancelLabel:Show()
AuxManageFrameListingDialogContentActionButton:SetText('Yes')
AuxManageFrameListingDialogContentCancelButton:SetText('No')
end
AuxManageFrameListingDialog:Show()
AuxAuctionsFrameListingDialogContentCancelLabel:Show()
AuxAuctionsFrameListingDialogContentActionButton:SetText('Yes')
AuxAuctionsFrameListingDialogContentCancelButton:SetText('No')
AuxAuctionsFrameListingDialog:Show()
end
+1 -27
View File
@@ -2,7 +2,7 @@
<Script file="auctions_frame.lua"/>
<Frame name="AuxManageFrame" hidden="true" parent="AuxFrame" setAllPoints="true">
<Frame name="AuxAuctionsFrame" hidden="true" parent="AuxFrame" setAllPoints="true">
<Frames>
<Frame name="$parentListing" inherits="AuxFrameBoxTemplate">
<Size>
@@ -60,32 +60,6 @@
<Frame name="$parentItem" inherits="AuxItemTemplate">
<Anchors><Anchor point="TOP"><Offset><AbsDimension x="0" y="0"/></Offset></Anchor></Anchors>
</Frame>
<Frame name="$parentBid" inherits="MoneyInputFrameTemplate">
<Anchors><Anchor point="BOTTOM"><Offset><AbsDimension x="30" y="43"/></Offset></Anchor></Anchors>
<Layers>
<Layer level="OVERLAY">
<FontString inherits="GameFontNormal" text="Price:" justifyH="RIGHT">
<Anchors><Anchor point="RIGHT" relativePoint="LEFT"><Offset><AbsDimension x="-10" y="0"/></Offset></Anchor></Anchors>
</FontString>
</Layer>
</Layers>
</Frame>
<Frame name="$parentBuyoutPrice" inherits="SmallMoneyFrameTemplate">
<Anchors><Anchor point="BOTTOM"><Offset><AbsDimension x="30" y="45"/></Offset></Anchor></Anchors>
<Scripts>
<OnLoad>
SmallMoneyFrame_OnLoad()
MoneyFrame_SetType("STATIC")
</OnLoad>
</Scripts>
<Layers>
<Layer level="OVERLAY">
<FontString inherits="GameFontNormal" text="Price:" justifyH="RIGHT">
<Anchors><Anchor point="RIGHT" relativePoint="LEFT"><Offset><AbsDimension x="-5" y="0"/></Offset></Anchor></Anchors>
</FontString>
</Layer>
</Layers>
</Frame>
<Button name="$parentActionButton" inherits="UIPanelButtonTemplate" text="Buy" disabled="true">
<Size><AbsDimension x="90" y="26"/> </Size>
<Anchors><Anchor point="BOTTOMLEFT"><Offset><AbsDimension x="0" y="0"/></Offset></Anchor></Anchors>
+33 -52
View File
@@ -184,10 +184,10 @@ function public.update_bid_records()
end
function public.update_listing()
AuxManageFrameListingBidListing:Show()
Aux.sheet.populate(AuxManageFrameListingBidListing.sheet, bid_records)
AuxManageFrameListing:SetWidth(AuxManageFrameListingBidListing:GetWidth() + 40)
AuxFrame:SetWidth(AuxManageFrameListing:GetWidth() + 15)
AuxBidsFrameListingBidListing:Show()
Aux.sheet.populate(AuxBidsFrameListingBidListing.sheet, bid_records)
AuxBidsFrameListing:SetWidth(AuxBidsFrameListingBidListing:GetWidth() + 40)
AuxFrame:SetWidth(AuxBidsFrameListing:GetWidth() + 15)
end
function private.create_record(auction_info)
@@ -210,7 +210,6 @@ function private.create_record(auction_info)
signature = Aux.auction_signature(auction_info.hyperlink, aux_quantity, bid, auction_info.buyout_price),
name = auction_info.name,
level = auction_info.level,
tooltip = auction_info.tooltip,
aux_quantity = aux_quantity,
buyout_price = buyout_price,
@@ -219,13 +218,11 @@ function private.create_record(auction_info)
hyperlink = auction_info.hyperlink,
itemstring = auction_info.itemstring,
bid = bid,
bid_per_unit = Aux_Round(bid / aux_quantity),
owner = auction_info.owner,
duration = auction_info.duration,
usable = auction_info.usable,
high_bidder = auction_info.high_bidder,
current_bid = auction_info.current_bid > 0 and auction_info.current_bid or nil,
min_bid = auction_info.min_bid,
status = status,
EnhTooltip_info = auction_info.EnhTooltip_info,
@@ -239,7 +236,7 @@ end
function public.dialog_cancel()
Aux.log('Aborted.')
Aux.scan.abort()
AuxManageFrameListingDialog:Hide()
AuxBidsFrameListingDialog:Hide()
public.update_listing()
end
@@ -273,7 +270,7 @@ function private.find_auction(entry, action, express_mode)
local found
Aux.scan.start{
type = action == 'cancel' and 'owner' or 'bidder',
type = 'bidder',
page = entry.page,
on_read_auction = function(auction_info, ctrl)
@@ -285,11 +282,7 @@ function private.find_auction(entry, action, express_mode)
Aux.log('Matching auction found.'..(express_mode and '' or ' Awaiting confirmation ...'))
if express_mode then
if action == 'cancel' then
CancelAuction(auction_info.index)
entry.gone = true
Aux.log('Canceled'..auction_record.hyperlink..' x '..auction_record.aux_quantity)
elseif GetMoney() >= amount then
if GetMoney() >= amount then
PlaceAuctionBid('bidder', auction_info.index, amount)
Aux.log((action == 'buyout' and 'Purchased ' or 'Bid on ')..auction_record.hyperlink..' x '..auction_record.aux_quantity..' at '..Aux.util.money_string(amount)..'.')
entry.gone = true
@@ -299,24 +292,20 @@ function private.find_auction(entry, action, express_mode)
Aux.scan.abort()
else
public.dialog_action = function()
if private.create_record(Aux.info.auction(auction_info.index, action == 'cancel' and 'owner' or 'bidder')).signature == entry.signature then
if action == 'cancel' then
CancelAuction(auction_info.index)
entry.gone = true
Aux.log('Canceled'..auction_record.hyperlink..' x '..auction_record.aux_quantity)
elseif GetMoney() >= amount then
PlaceAuctionBid('bidder', auction_info.index, action == 'bid' and MoneyInputFrame_GetCopper(AuxManageFrameListingDialogContentBid) or amount)
Aux.log((action == 'buyout' and 'Purchased ' or 'Bid on ')..auction_record.hyperlink..' x '..auction_record.aux_quantity..' at '..Aux.util.money_string(action == 'bid' and MoneyInputFrame_GetCopper(AuxManageFrameListingDialogContentBid) or amount)..'.')
if private.create_record(Aux.info.auction(auction_info.index, 'bidder')).signature == entry.signature then
if GetMoney() >= amount then
PlaceAuctionBid('bidder', auction_info.index, action == 'bid' and MoneyInputFrame_GetCopper(AuxBidsFrameListingDialogContentBid) or amount)
Aux.log((action == 'buyout' and 'Purchased ' or 'Bid on ')..auction_record.hyperlink..' x '..auction_record.aux_quantity..' at '..Aux.util.money_string(action == 'bid' and MoneyInputFrame_GetCopper(AuxBidsFrameListingDialogContentBid) or amount)..'.')
entry.gone = true
else
Aux.log('Not enough money.')
end
Aux.scan.abort()
AuxManageFrameListingDialog:Hide()
AuxBidsFrameListingDialog:Hide()
public.update_listing()
end
end
AuxManageFrameListingDialogContentActionButton:Enable()
AuxBidsFrameListingDialogContentActionButton:Enable()
end
end
end,
@@ -351,44 +340,36 @@ function public.on_bid_click(bid_record)
end
function private.show_dialog(action, entry, amount)
AuxManageFrameListingDialogContentItem.itemstring = Aux.info.itemstring(entry.item_id, entry.suffix_id, entry.unique_id, entry.enchant_id)
AuxManageFrameListingDialogContentItem.EnhTooltip_info = entry.EnhTooltip_info
AuxBidsFrameListingDialogContentItem.itemstring = Aux.info.itemstring(entry.item_id, entry.suffix_id, entry.unique_id, entry.enchant_id)
AuxBidsFrameListingDialogContentItem.EnhTooltip_info = entry.EnhTooltip_info
AuxManageFrameListingDialogContentActionButton:Disable()
AuxManageFrameListingDialogContentItemIconTexture:SetTexture(Aux.info.item(entry.item_id).texture)
AuxManageFrameListingDialogContentItemName:SetText(entry.name)
AuxBidsFrameListingDialogContentActionButton:Disable()
AuxBidsFrameListingDialogContentItemIconTexture:SetTexture(Aux.info.item(entry.item_id).texture)
AuxBidsFrameListingDialogContentItemName:SetText(entry.name)
local color = ITEM_QUALITY_COLORS[entry.quality]
AuxManageFrameListingDialogContentItemName:SetTextColor(color.r, color.g, color.b)
AuxBidsFrameListingDialogContentItemName:SetTextColor(color.r, color.g, color.b)
if entry.aux_quantity > 1 then
AuxManageFrameListingDialogContentItemCount:SetText(entry.aux_quantity);
AuxManageFrameListingDialogContentItemCount:Show()
AuxBidsFrameListingDialogContentItemCount:SetText(entry.aux_quantity);
AuxBidsFrameListingDialogContentItemCount:Show()
else
AuxManageFrameListingDialogContentItemCount:Hide()
AuxBidsFrameListingDialogContentItemCount:Hide()
end
if action == 'buyout' then
AuxManageFrameListingDialogContentActionButton:SetText('Buy')
AuxManageFrameListingDialogContentCancelButton:SetText('Cancel')
MoneyFrame_Update('AuxManageFrameListingDialogContentBuyoutPrice', amount)
AuxManageFrameListingDialogContentBid:Hide()
AuxManageFrameListingDialogContentCancelLabel:Hide()
AuxManageFrameListingDialogContentBuyoutPrice:Show()
AuxBidsFrameListingDialogContentActionButton:SetText('Buy')
AuxBidsFrameListingDialogContentCancelButton:SetText('Cancel')
MoneyFrame_Update('AuxBidsFrameListingDialogContentBuyoutPrice', amount)
AuxBidsFrameListingDialogContentBid:Hide()
AuxBidsFrameListingDialogContentBuyoutPrice:Show()
elseif action == 'bid' then
AuxManageFrameListingDialogContentActionButton:SetText('Bid')
AuxManageFrameListingDialogContentCancelButton:SetText('Cancel')
MoneyInputFrame_SetCopper(AuxManageFrameListingDialogContentBid, amount)
AuxManageFrameListingDialogContentBuyoutPrice:Hide()
AuxManageFrameListingDialogContentCancelLabel:Hide()
AuxManageFrameListingDialogContentBid:Show()
elseif action == 'cancel' then
AuxManageFrameListingDialogContentBid:Hide()
AuxManageFrameListingDialogContentBuyoutPrice:Hide()
AuxManageFrameListingDialogContentCancelLabel:Show()
AuxManageFrameListingDialogContentActionButton:SetText('Yes')
AuxManageFrameListingDialogContentCancelButton:SetText('No')
AuxBidsFrameListingDialogContentActionButton:SetText('Bid')
AuxBidsFrameListingDialogContentCancelButton:SetText('Cancel')
MoneyInputFrame_SetCopper(AuxBidsFrameListingDialogContentBid, amount)
AuxBidsFrameListingDialogContentBuyoutPrice:Hide()
AuxBidsFrameListingDialogContentBid:Show()
end
AuxManageFrameListingDialog:Show()
AuxBidsFrameListingDialog:Show()
end
+1 -8
View File
@@ -2,7 +2,7 @@
<Script file="bids_frame.lua"/>
<Frame name="AuxManageFrame" hidden="true" parent="AuxFrame" setAllPoints="true">
<Frame name="AuxBidsFrame" hidden="true" parent="AuxFrame" setAllPoints="true">
<Frames>
<Frame name="$parentListing" inherits="AuxFrameBoxTemplate">
<Size>
@@ -49,13 +49,6 @@
<Frame name="$parentContent">
<Anchors><Anchor point="CENTER"><Offset><AbsDimension x="0" y="5"/></Offset></Anchor></Anchors>
<Size><AbsDimension x="193" y="120"/></Size>
<Layers>
<Layer level="OVERLAY">
<FontString name="$parentCancelLabel" inherits="GameFontNormal" text="Cancel this auction?" justifyH="RIGHT">
<Anchors><Anchor point="BOTTOM"><Offset><AbsDimension x="0" y="45"/></Offset></Anchor></Anchors>
</FontString>
</Layer>
</Layers>
<Frames>
<Frame name="$parentItem" inherits="AuxItemTemplate">
<Anchors><Anchor point="TOP"><Offset><AbsDimension x="0" y="0"/></Offset></Anchor></Anchors>
+4 -3
View File
@@ -186,7 +186,8 @@ function Aux.on_tab_click(index)
AuxItemSearchFrame:Hide()
AuxFilterSearchFrame:Hide()
AuxSellFrame:Hide()
AuxManageFrame:Hide()
AuxAuctionsFrame:Hide()
AuxBidsFrame:Hide()
AuxHistoryFrame:Hide()
if index == 1 then
@@ -199,10 +200,10 @@ function Aux.on_tab_click(index)
AuxSellFrame:Show()
Aux.sell.on_open()
elseif index == 4 then
AuxManageFrame:Show()
AuxAuctionsFrame:Show()
Aux.auctions_frame.on_open()
elseif index == 5 then
AuxManageFrame:Show()
AuxBidsFrame:Show()
Aux.bids_frame.on_open()
end
end)
+5
View File
@@ -485,6 +485,11 @@ function public.stop_search()
end
function update_sheet()
if not AuxFilterSearchFrame:IsVisible() then
return
end
AuxFilterSearchFrameResultsBuyListing:Hide()
AuxFilterSearchFrameResultsBidListing:Hide()
AuxFilterSearchFrameResultsFullListing:Hide()
+5
View File
@@ -435,6 +435,11 @@ function public.stop_search()
end
function update_listing()
if not AuxItemSearchFrame:IsVisible() then
return
end
AuxItemSearchFrameAuctionsBuyListing:Hide()
AuxItemSearchFrameAuctionsBidListing:Hide()
AuxItemSearchFrameAuctionsFullListing:Hide()