/traderous

To get this branch, use:
bzr branch http://9ix.org/bzr/traderous

« back to all changes in this revision

Viewing changes to trade_view.lua

  • Committer: Josh C
  • Date: 2013-06-23 02:05:10 UTC
  • Revision ID: josh@9ix.org-20130623020510-i4t86yocvbjab19o
higher planet floor, recharge shields when you land, stop moving when you land

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
TradeView = Subview:extend {
2
2
   drawParent = true, --default?
 
3
   have = {},
3
4
   onNew = function (self)
4
5
              -- create all the interface bits from the planet
5
6
              -- and add them to the view
6
7
 
7
 
              local boxL = the.app.width / 2 - 200
8
 
              local boxT = the.app.height / 2 - 200
9
 
              local boxR = boxL + 400
 
8
              local boxL = the.app.width / 2 - 225
 
9
              local boxT = the.app.height / 2 - 150
 
10
              local boxR = boxL + 450
 
11
              local boxB = boxT + 300
10
12
 
11
13
              local lh = 17 -- line height
12
14
 
14
16
                          fill = {255,255,255},
15
17
                          x = boxL - 1,
16
18
                          y = boxT - 1,
17
 
                          width = 402,
18
 
                          height = 402,
 
19
                          width = 452,
 
20
                          height = 302,
19
21
                       })
20
22
 
21
23
              self:add(Fill:new{
22
24
                          fill = {0,0,0},
23
25
                          x = boxL,
24
26
                          y = boxT,
25
 
                          width = 400,
26
 
                          height = 400,
 
27
                          width = 450,
 
28
                          height = 300,
 
29
                       })
 
30
 
 
31
              self:add(Text:new{
 
32
                          text = 'Name',
 
33
                          x = boxL + 10,
 
34
                          y = boxT + 10,
 
35
                          width = 380
 
36
                       })
 
37
 
 
38
              self:add(Text:new{
 
39
                          text = 'Price',
 
40
                          x = boxL + 10,
 
41
                          y = boxT + 10,
 
42
                          width = 300,
 
43
                          align = 'right'
 
44
                       })
 
45
 
 
46
              self:add(Text:new{
 
47
                          text = 'Have',
 
48
                          align = 'right',
 
49
                          y = boxT + 10,
 
50
                          x = boxR - 40
27
51
                       })
28
52
 
29
53
              for i, good in ipairs(self.planet.goods) do
30
54
                 local t = Text:new{
31
55
                    text = good[1],
32
56
                    x = boxL + 10,
33
 
                    y = boxT + 10 + (i-1) * lh,
 
57
                    y = boxT + 10 + i * lh,
34
58
                    width = 380
35
59
                 }
36
60
 
39
63
                 t = Text:new{
40
64
                    text = good[2],
41
65
                    x = boxL + 10,
42
 
                    y = boxT + 10 + (i-1) * lh,
 
66
                    y = boxT + 10 + i * lh,
43
67
                    width = 300,
44
68
                    align = 'right'
45
69
                 }
46
70
                 self:add(t)
47
71
 
48
72
                 local b = Button:new{
49
 
                    x = boxR - 80,
50
 
                    y = boxT + 10 + (i-1) * lh - 1,
 
73
                    x = boxR - 130,
 
74
                    y = boxT + 10 + i * lh - 1,
51
75
                    label = Text:new{ text = 'BUY', x = 1 },
 
76
                    onMouseDown = function (self)
 
77
                                     the.player:buy(good[1], good[2])
 
78
                                  end
52
79
                 }
53
80
                 local tw, th = b.label:getSize()
54
81
                 b.background = Fill:new{
59
86
                 self:add(b)
60
87
 
61
88
                 b = Button:new{
62
 
                    x = boxR - 40,
63
 
                    y = boxT + 10 + (i-1) * lh - 1,
 
89
                    x = boxR - 90,
 
90
                    y = boxT + 10 + i * lh - 1,
64
91
                    label = Text:new{ text = 'SELL', x = 1 },
 
92
                    onMouseDown = function (self)
 
93
                                     the.player:sell(good[1], good[2])
 
94
                                  end
65
95
                 }
66
96
                 local tw, th = b.label:getSize()
67
97
                 b.background = Fill:new{
70
100
                    height = th
71
101
                 }
72
102
                 self:add(b)
 
103
 
 
104
                 local have = Text:new{
 
105
                    x = boxR - 110,
 
106
                    y = boxT + 10 + i * lh,
 
107
                    width = 100,
 
108
                    align = 'right',
 
109
                 }
 
110
                 self.have[good[1]] = have
 
111
                 self:add(have)
 
112
 
73
113
              end
74
114
 
75
115
              local b = Button:new{
87
127
                 height = th + 4
88
128
              }
89
129
              b.x = boxR - b.background.width - 10
90
 
              b.y = boxT + 400 - b.background.height - 10
 
130
              b.y = boxB - b.background.height - 10
91
131
 
92
132
              self:add(b)
93
133
 
95
135
                 text = 'Your money: ',
96
136
                 width = 200,
97
137
                 x = boxL + 10,
98
 
                 y = boxT + 400 - th - 10
 
138
                 y = boxB - th - 10
99
139
              }
100
140
              self:add(self.playerMoney)
101
141
 
106
146
                 the.cursor.visible = false
107
147
                 love.mouse.setVisible(true)
108
148
                 love.mouse.setGrab(false)
 
149
                 love.mouse.setPosition(the.app.width / 2, the.app.height / 2)
109
150
 
110
151
                 Subview.activate(self)
111
152
              end,
113
154
              the.cursor.visible = true
114
155
              love.mouse.setVisible(false)
115
156
              love.mouse.setGrab(true)
 
157
              love.mouse.setPosition(the.app.width / 2, the.app.height / 2)
116
158
 
117
159
              self:deactivate()
118
160
           end,
122
164
                 end
123
165
 
124
166
                 self.playerMoney.text = 'Your money: ' .. the.player.money
 
167
 
 
168
                 for good, have in pairs(self.have) do
 
169
                    have.text = the.player.goods[good] or 0
 
170
                 end
125
171
              end
126
172
}
 
 
b'\\ No newline at end of file'