Stendhal/ideas/GUI for Harold
Having a GUI for asynchronous trading was discussed on feature request #1385, "Two-way trading system".
A possible implementation would be:
The player goes to Harold, says "Hi", and "Catalog" - then Harold shows him the window and closes it when the conversation is over. If another player comes in, he is asked to wait.
The "Catalog" word is just an idea, could be something else.
We want to keep the current text-based implementation. The GUI would be an alternative, not a replacement.
There are 4 tabs:
- "Market" - shows what you can buy from Harold
- "My Offers" - where you put items on sale
- "My Requests" - where you ask the community for items
- "Other Requests" - shows what others are asking for
The category drop-down lets you filter by item category, the same as on .
There is also a "Most recent" category and an "All" category (à la F-Droid).
Currently it is possible to have 3 items for sale, and any number of items expired.
There is a drop-field (like a chest), where you drop the item for sale.
A table shows all the items you have for sale (on top) and all the expired items (below).
When you drop an item (or a number of stackable items) into the drop-field, a text input field and a button appear. The text input field is used for setting the price. The button is clicked to place the offer. There is also a label showing Harold's fee for this offer.
When you have neither items for sale not expired items, the table is not shown.
There are two views:
- view A - one where you see what you have already requested
- view B - where you choose what to request
By default you only see a "Make Request" button. When you click it, View A is replaced by View B.
If you have requested items, they are shown in a table. Each item has buttons to prolong and remove the request.
If you have already requested the maximum number of items, the "Make Request" button is hidden.
There's a grid of items, grouped by category, like on . A "Back" button takes you back to View A.
When an item from the grid is selected, the following controls become visible:
- a description label (shows the name of the item and the stats)
- a quantity input box - where you choose how many items of that kind you want
- is only shown for stackable items (for example, you may want to buy 100 wood, but you may not request 2 swords)
- a price input box - where you name your price
- you need to have that kind of money - when placing the offer Harold will take it
- a label showing Harold's fee for this request
- a "Request" button - to place the request
On the "Other Requests" tab, you can see what others have requested.
It looks just like the "Market" tab, but instead of buying you sell. To sell an item, you need to have it equiped.
There's also a filter by category. If no player has requested items from a category, the table is not shown.
You give a stack of items to Harold, lets say 100 wood, and set a price for one item, not for all 100! This way other players can decide how many pieces of wood to buy. For example, a player just needs 20 wood, so he pays the money for 20 and gets the items, without having to buy more than he needs. A stack of items at one price will count as one offer, but you are able to put more items into your offered stack to refill it. The stack will expire normally like every offer, so you have to prolong it regularly.
Also, when you refill the stack it gets prolonged automatically. But for every time you prolong manually or refill your stack an offering fee should be taken again. I don't know how the fee is currently calculated, but the more items you offer in one stack (or refill), the higher the fee should be. (For refilling it should be just calculated with the amount of the refill, not for the complete stack, as not to pay twice for the items which were already in the offer-stack before refilling.) Calculating the fee should also keep the price of the offer in mind.
When you drop a stackable items, a checkbox appears (in the image, it's labeled "Separately"). By default it is checked. Also, next to the quantity selector a label appears (labeled " / pc", meaning "per piece"). If you uncheck the "Separately" checkbox, then the "per-piece" label disappears.
When looking at the list of items to buy, the buy-buttons for stackable items are labeled such as to make it clear whether the stack is offered as a whole or it can also be bought separately. For example, in the image, there are stacked 2 offers:
- you can buy 16 porcini for 100 money
- you can buy up to 32 porcini for 10 money each
See also: Ideas_for_Stendhal/StendhalTouch