comparison gamelib/gameboard.py @ 54:b8f64db0d39e

Cleaned up buying and selling a bit.
author Jeremy Thurgood <firxen@gmail.com>
date Mon, 31 Aug 2009 17:56:13 +0000
parents 0d4799866bcf
children 08665fa60345
comparison
equal deleted inserted replaced
53:f20dd3dcb118 54:b8f64db0d39e
112 def set_selected_tool(self, tool): 112 def set_selected_tool(self, tool):
113 self.selected_tool = tool 113 self.selected_tool = tool
114 114
115 def use_tool(self, e): 115 def use_tool(self, e):
116 if self.selected_tool == constants.TOOL_SELL_CHICKEN: 116 if self.selected_tool == constants.TOOL_SELL_CHICKEN:
117 for chick in self.chickens: 117 self.sell_chicken(e.pos)
118 if chick.rect.collidepoint(e.pos):
119 if len(self.chickens) == 1:
120 print "Can't sell your last chicken!"
121 else:
122 self.add_cash(constants.SELL_PRICE_CHICKEN)
123 self.remove_chicken(chick)
124 break
125 if self.selected_tool == constants.TOOL_SELL_EGG: 118 if self.selected_tool == constants.TOOL_SELL_EGG:
126 pass 119 pass
127 if self.selected_tool == constants.TOOL_BUY_FENCE: 120 if self.selected_tool == constants.TOOL_BUY_FENCE:
128 tile_pos = self.tv.screen_to_tile(e.pos) 121 self.buy_fence(self.tv.screen_to_tile(e.pos))
129 if (self.cash >= constants.BUY_PRICE_FENCE and
130 self.tv.get(tile_pos) == tiles.REVERSE_TILE_MAP['grassland']):
131 self.add_cash(-constants.BUY_PRICE_FENCE)
132 self.tv.set(tile_pos, tiles.REVERSE_TILE_MAP['fence'])
133 if self.selected_tool == constants.TOOL_BUY_HENHOUSE: 122 if self.selected_tool == constants.TOOL_BUY_HENHOUSE:
134 pass 123 pass
124
125 def get_chicken(self, pos):
126 for chick in self.chickens:
127 if chick.rect.collidepoint(pos):
128 return chick
129 return None
130
131 def sell_chicken(self, pos):
132 chick = self.get_chicken(pos)
133 if chick is None:
134 return
135 if len(self.chickens) == 1:
136 print "You can't sell your last chicken!"
137 return
138 self.add_cash(constants.SELL_PRICE_CHICKEN)
139 self.remove_chicken(chick)
140
141 def buy_fence(self, tile_pos):
142 if self.tv.get(tile_pos) != tiles.REVERSE_TILE_MAP['grassland']:
143 return
144 if self.cash < constants.BUY_PRICE_FENCE:
145 print "You can't afford a fence."
146 return
147 self.add_cash(-constants.BUY_PRICE_FENCE)
148 self.tv.set(tile_pos, tiles.REVERSE_TILE_MAP['fence'])
135 149
136 def event(self, e): 150 def event(self, e):
137 if e.type == KEYDOWN: 151 if e.type == KEYDOWN:
138 if e.key == K_UP: 152 if e.key == K_UP:
139 self.tvw.move_view(0, -self.TILE_DIMENSIONS[1]) 153 self.tvw.move_view(0, -self.TILE_DIMENSIONS[1])