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))])