blob: 967a2cefc8f9f63c4ce9ed7874d92133cb0f51c6 (
plain)
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
82
|
#pragma once
#include "StarWorldClient.hpp"
#include "StarPane.hpp"
namespace Star {
STAR_CLASS(WorldClient);
STAR_CLASS(ItemBag);
STAR_CLASS(ItemGridWidget);
STAR_CLASS(ListWidget);
STAR_CLASS(TextBoxWidget);
STAR_CLASS(ButtonWidget);
STAR_CLASS(LabelWidget);
STAR_CLASS(TabSetWidget);
STAR_CLASS(MerchantPane);
class MerchantPane : public Pane {
public:
MerchantPane(WorldClientPtr worldClient, PlayerPtr player, Json const& settings, EntityId sourceEntityId = NullEntityId);
void displayed() override;
void dismissed() override;
PanePtr createTooltip(Vec2I const& screenPosition) override;
EntityId sourceEntityId() const;
ItemPtr addItems(ItemPtr const& items);
protected:
void update(float dt) override;
private:
void swapSlot();
void buildItemList();
void setupWidget(WidgetPtr const& widget, Json const& itemConfig);
void updateSelection();
int itemPrice();
void updateBuyTotal();
void buy();
void updateSellTotal();
void sell();
int maxBuyCount();
void countChanged();
void countTextChanged();
WorldClientPtr m_worldClient;
PlayerPtr m_player;
EntityId m_sourceEntityId;
Json m_settings;
GameTimer m_refreshTimer;
JsonArray m_itemList;
size_t m_selectedIndex;
ItemPtr m_selectedItem;
float m_buyFactor;
int m_buyTotal;
float m_sellFactor;
int m_sellTotal;
TabSetWidgetPtr m_tabSet;
ListWidgetPtr m_itemGuiList;
TextBoxWidgetPtr m_countTextBox;
LabelWidgetPtr m_buyTotalLabel;
ButtonWidgetPtr m_buyButton;
LabelWidgetPtr m_sellTotalLabel;
ButtonWidgetPtr m_sellButton;
ItemGridWidgetPtr m_itemGrid;
ItemBagPtr m_itemBag;
int m_buyCount;
int m_maxBuyCount;
};
}
|