# HG changeset patch # User Simon Cross # Date 1251745831 0 # Node ID e2631c8e2cd6382b086f7d5bc0e4dc190a984808 # Parent efbaedd0fdfec79826cc9942ae9a4f40cf44d79f Implement guard towers (with temporary sprite PNG). diff -r efbaedd0fdfe -r e2631c8e2cd6 data/sprites/guardtower.png Binary file data/sprites/guardtower.png has changed diff -r efbaedd0fdfe -r e2631c8e2cd6 gamelib/constants.py --- a/gamelib/constants.py Mon Aug 31 19:04:00 2009 +0000 +++ b/gamelib/constants.py Mon Aug 31 19:10:31 2009 +0000 @@ -23,8 +23,10 @@ SELL_PRICE_CHICKEN = 10 BUY_PRICE_FENCE = 50 BUY_PRICE_HENHOUSE = 100 +BUY_PRICE_GUARDTOWER = 200 TOOL_SELL_CHICKEN = 1 TOOL_SELL_EGG = 2 TOOL_BUY_FENCE = 3 TOOL_BUY_HENHOUSE = 4 +TOOL_BUY_GUARDTOWER = 5 diff -r efbaedd0fdfe -r e2631c8e2cd6 gamelib/gameboard.py --- a/gamelib/gameboard.py Mon Aug 31 19:04:00 2009 +0000 +++ b/gamelib/gameboard.py Mon Aug 31 19:10:31 2009 +0000 @@ -30,6 +30,7 @@ self.add_tool_button("Sell egg", constants.TOOL_SELL_EGG) self.add_tool_button("Buy fence", constants.TOOL_BUY_FENCE) self.add_tool_button("Buy henhouse", constants.TOOL_BUY_HENHOUSE) + self.add_tool_button("Buy guard tower", constants.TOOL_BUY_GUARDTOWER) def update_cash_counter(self, amount): self.cash_counter.update_value("Groats: %s" % amount) @@ -87,6 +88,7 @@ self.chickens = [] self.foxes = [] self.henhouses = [] + self.guardtowers = [] self.cash = 0 self.add_cash(constants.STARTING_CASH) @@ -123,6 +125,8 @@ self.buy_fence(self.tv.screen_to_tile(e.pos)) elif self.selected_tool == constants.TOOL_BUY_HENHOUSE: self.buy_henhouse(self.tv.screen_to_tile(e.pos)) + elif self.selected_tool == constants.TOOL_BUY_GUARDTOWER: + self.buy_guardtower(self.tv.screen_to_tile(e.pos)) def get_chicken(self, pos): for chick in self.chickens: @@ -157,6 +161,14 @@ self.add_cash(-constants.BUY_PRICE_HENHOUSE) self.add_henhouse(henhouse) + def buy_guardtower(self, tile_pos): + if self.cash < constants.BUY_PRICE_GUARDTOWER: + return + guardtower = buildings.GuardTower(tile_pos) + if guardtower.place(self.tv): + self.add_cash(-constants.BUY_PRICE_GUARDTOWER) + self.add_guardtower(guardtower) + def event(self, e): if e.type == KEYDOWN: if e.key == K_UP: @@ -191,6 +203,10 @@ self.henhouses.append(henhouse) self.tv.sprites.append(henhouse) + def add_guardtower(self, guardtower): + self.guardtowers.append(guardtower) + self.tv.sprites.append(guardtower) + def remove_fox(self, fox): if fox in self.foxes: self.foxes.remove(fox)