Mercurial > rinkhals
comparison gamelib/gameboard.py @ 557:50d6c68ce267
Add gameboard to buildings. Update save version as this breaks old save games
author | Neil Muller <drnlmuller@gmail.com> |
---|---|
date | Sat, 28 Nov 2009 18:20:46 +0000 |
parents | 46f6f1a98f3f |
children | 7f037ee2a6c8 |
comparison
equal
deleted
inserted
replaced
556:46f6f1a98f3f | 557:50d6c68ce267 |
---|---|
753 tbl.event = dlg_event | 753 tbl.event = dlg_event |
754 | 754 |
755 self.open_dialog(tbl, close_callback=close_callback) | 755 self.open_dialog(tbl, close_callback=close_callback) |
756 | 756 |
757 def buy_building(self, tile_pos, building_cls): | 757 def buy_building(self, tile_pos, building_cls): |
758 building = building_cls(tile_pos) | 758 building = building_cls(tile_pos, self) |
759 if self.wood < building.buy_price(): | 759 if self.wood < building.buy_price(): |
760 return | 760 return |
761 if any(building.covers((chicken.pos.x, chicken.pos.y)) for chicken in self.chickens): | 761 if any(building.covers((chicken.pos.x, chicken.pos.y)) for chicken in self.chickens): |
762 return | 762 return |
763 if building.place(self.tv): | 763 if building.place(): |
764 self.add_wood(-building.buy_price()) | 764 self.add_wood(-building.buy_price()) |
765 self.add_building(building) | 765 self.add_building(building) |
766 | 766 |
767 def buy_equipment(self, tile_pos, equipment_cls): | 767 def buy_equipment(self, tile_pos, equipment_cls): |
768 | 768 |
800 if list(building.occupants()): | 800 if list(building.occupants()): |
801 warning = gui.Button("Occupied buildings may not be sold.") | 801 warning = gui.Button("Occupied buildings may not be sold.") |
802 self.open_dialog(warning) | 802 self.open_dialog(warning) |
803 return | 803 return |
804 self.add_wood(building.sell_price()) | 804 self.add_wood(building.sell_price()) |
805 building.remove(self.tv) | 805 building.remove() |
806 self.remove_building(building) | 806 self.remove_building(building) |
807 | 807 |
808 def repair_building(self, tile_pos): | 808 def repair_building(self, tile_pos): |
809 building = self.get_building(tile_pos) | 809 building = self.get_building(tile_pos) |
810 if not (building and building.broken()): | 810 if not (building and building.broken()): |
811 return | 811 return |
812 if self.wood < building.repair_price(): | 812 if self.wood < building.repair_price(): |
813 return | 813 return |
814 self.add_wood(-building.repair_price()) | 814 self.add_wood(-building.repair_price()) |
815 building.repair(self.tv) | 815 building.repair() |
816 | 816 |
817 def sell_equipment(self, tile_pos): | 817 def sell_equipment(self, tile_pos): |
818 x, y = 0, 0 | 818 x, y = 0, 0 |
819 def do_sell(chicken, update_button=None): | 819 def do_sell(chicken, update_button=None): |
820 if not chicken.equipment: | 820 if not chicken.equipment: |
1148 | 1148 |
1149 if covered: | 1149 if covered: |
1150 continue | 1150 continue |
1151 | 1151 |
1152 building_cls = tile_to_building[tile_no] | 1152 building_cls = tile_to_building[tile_no] |
1153 building = building_cls(tile_pos) | 1153 building = building_cls(tile_pos, self) |
1154 building.remove(self.tv) | 1154 building.remove() |
1155 building.place(self.tv) | 1155 building.place() |
1156 self.add_building(building) | 1156 self.add_building(building) |
1157 | 1157 |
1158 def trees_left(self): | 1158 def trees_left(self): |
1159 width, height = self.tv.size | 1159 width, height = self.tv.size |
1160 return len([(x,y) for x in range(width) for y in range(height) if self.is_woodland_tile(misc.Position(x,y))]) | 1160 return len([(x,y) for x in range(width) for y in range(height) if self.is_woodland_tile(misc.Position(x,y))]) |