Skip to content

Commit 798a0cf

Browse files
committed
feat(grandexchange): add CreateBuyOffer and CreateSellOffer methods to TRSGrandExchangeOffer
1 parent 21ebdce commit 798a0cf

File tree

1 file changed

+57
-0
lines changed

1 file changed

+57
-0
lines changed

osrs/interfaces/mainscreen/grandexchange/grandexchange_offer.simba

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -845,6 +845,63 @@ begin
845845
Result := SleepUntil(not Self.HasItems(), 200, 2000);
846846
end;
847847

848+
(*
849+
## GrandExchangeOffer.CreateBuyOffer
850+
```pascal
851+
function TRSGrandExchangeOffer.CreateBuyOffer(itemName : String; price, quantity : Integer = -1) : Boolean;
852+
```
853+
854+
Attempts to create a buy offer for the specified `itemName`, `price` and `quantity`.
855+
856+
Example:
857+
```pascal
858+
if GrandExchangeOffer.CreateBuyOffer('Abyssal whip', 1500000, 1) then
859+
WriteLn('Buy offer created successfully!');
860+
```
861+
*)
862+
function TRSGrandExchangeOffer.CreateBuyOffer(itemName: String; price, quantity: Integer = -1) : Boolean;
863+
begin
864+
if not Self.IsOpen() then Exit;
865+
if (Self.OfferInterface <> EGEOfferInterface.SETUP) or (Self.OfferType <> EGEOfferType.BUY) then Exit;
866+
867+
if not GrandExchangeChat.WaitOpen(2000, 250) then Exit;
868+
if not GrandExchangeChat.SearchText[itemName] then Exit;
869+
if not GrandExchangeChat.Click(itemName) then Exit;
870+
if not SleepUntil(Self.Item.ToLower() = itemName.ToLower(), 250, 2000) then Exit;
871+
872+
if (quantity <> -1) and not Self.Quantity[quantity] then Exit;
873+
if (price <> -1) and not Self.Price[price] then Exit;
874+
875+
Result := Self.Confirm();
876+
end;
877+
878+
(*
879+
## GrandExchangeOffer.CreateSellOffer
880+
```pascal
881+
function TRSGrandExchangeOffer.CreateSellOffer(itemName : String; price, quantity : Integer = -1) : Boolean;
882+
```
883+
884+
Attempts to create a sell offer for the specified `itemName`, `price` and `quantity`.
885+
886+
Example:
887+
```pascal
888+
if GrandExchangeOffer.CreateSellOffer('Abyssal whip', 1500000, 1) then
889+
WriteLn('Sell offer created successfully!');
890+
```
891+
*)
892+
function TRSGrandExchangeOffer.CreateSellOffer(itemName: String; price, quantity: Integer = -1) : Boolean;
893+
begin
894+
if not Self.IsOpen() then Exit;
895+
if (Self.OfferInterface <> EGEOfferInterface.SETUP) or (Self.OfferType <> EGEOfferType.SELL) then Exit;
896+
897+
if not Inventory.Items.Click(itemName) then Exit;
898+
if not SleepUntil(Self.Item.ToLower() = itemName.ToLower(), 250, 2000) then Exit;
899+
900+
if (quantity <> -1) and not Self.Quantity[quantity] then Exit;
901+
if (price <> -1) and not Self.Price[price] then Exit;
902+
903+
Result := Self.Confirm();
904+
end;
848905

849906
var
850907
(*

0 commit comments

Comments
 (0)