# HG changeset patch # User Simon Cross # Date 1252018770 0 # Node ID 92d11e0544bc1ba804c85f799473f7b290195092 # Parent 946f09ed37cd6522bad6fb4e922e0dbaba1896c6 Switch building to selected image when building is selected. diff -r 946f09ed37cd -r 92d11e0544bc gamelib/buildings.py --- a/gamelib/buildings.py Thu Sep 03 22:44:20 2009 +0000 +++ b/gamelib/buildings.py Thu Sep 03 22:59:30 2009 +0000 @@ -56,11 +56,13 @@ """Initial image, tile vid position, size and tile number for building.""" self.day_image = imagecache.load_image(self.IMAGE) self.night_image = imagecache.load_image(self.IMAGE, ('night',)) + self.selected_image = imagecache.load_image(self.SELECTED_IMAGE) self.pos = pos self.size = self.SIZE self.tile_no = self.TILE_NO self._buy_price = self.BUY_PRICE self._sell_price = self.SELL_PRICE + self._sun_on = True self._floors = [] for f in range(self.FLOORS): @@ -131,7 +133,14 @@ def sell_price(self): return self._sell_price + def selected(self, selected): + if selected: + self.setimage(self.selected_image) + else: + self.sun(self._sun_on) + def sun(self, sun_on): + self._sun_on = sun_on if sun_on: self.setimage(self.day_image) else: @@ -172,6 +181,7 @@ SELL_PRICE = 90 SIZE = (3, 2) IMAGE = 'sprites/henhouse.png' + SELECTED_IMAGE = 'sprites/select_henhouse.png' NAME = 'Hen House' FLOORS = 1 @@ -182,6 +192,7 @@ SELL_PRICE = 150 SIZE = (2, 3) IMAGE = 'sprites/hendominium.png' + SELECTED_IMAGE = 'sprites/select_hendominium.png' NAME = 'Hendominium' FLOORS = 2 @@ -193,6 +204,7 @@ SELL_PRICE = 150 SIZE = (2, 2) IMAGE = 'sprites/watchtower.png' + SELECTED_IMAGE = 'sprites/select_watchtower.png' NAME = 'Watch Tower' FLOORS = 1 diff -r 946f09ed37cd -r 92d11e0544bc gamelib/gameboard.py --- a/gamelib/gameboard.py Thu Sep 03 22:44:20 2009 +0000 +++ b/gamelib/gameboard.py Thu Sep 03 22:59:30 2009 +0000 @@ -310,12 +310,14 @@ if chicken in self.tv.sprites: self.tv.sprites.remove(chicken) - def open_dialog(self, widget): + def open_dialog(self, widget, close_callback=None): """Open a dialog for the given widget. Add close button.""" tbl = gui.Table() def close_dialog(): self.disp.close(tbl) + if close_callback is not None: + close_callback() close_button = gui.Button("Close") close_button.connect(gui.CLICK, close_dialog) @@ -379,7 +381,11 @@ place_button_map[id(place)] = button tbl.td(button, **kwargs) - self.open_dialog(tbl) + building.selected(True) + def close_callback(): + building.selected(False) + + self.open_dialog(tbl, close_callback=close_callback) def buy_fence(self, tile_pos): this_tile = self.tv.get(tile_pos)