Mercurial > rinkhals
comparison gamelib/gameboard.py @ 219:0a84d5aedc5c
Remove eggs from chickens placed outside. Fix some bugs with setting the correct image on buttons
author | Neil Muller <drnlmuller@gmail.com> |
---|---|
date | Fri, 04 Sep 2009 22:18:23 +0000 |
parents | 5cb0e0b9cd16 |
children | d46ae64240a1 |
comparison
equal
deleted
inserted
replaced
218:5cb0e0b9cd16 | 219:0a84d5aedc5c |
---|---|
330 if len(self.chickens) == 1: | 330 if len(self.chickens) == 1: |
331 print "You can't sell your last chicken!" | 331 print "You can't sell your last chicken!" |
332 return False | 332 return False |
333 self.add_cash(constants.SELL_PRICE_CHICKEN) | 333 self.add_cash(constants.SELL_PRICE_CHICKEN) |
334 sound.play_sound("sell-chicken.ogg") | 334 sound.play_sound("sell-chicken.ogg") |
335 self.remove_chicken(chicken) | |
336 return True | 335 return True |
337 | 336 |
338 chick = self.get_outside_chicken(tile_pos) | 337 chick = self.get_outside_chicken(tile_pos) |
339 if chick is None: | 338 if chick is None: |
340 building = self.get_building(tile_pos) | 339 building = self.get_building(tile_pos) |
399 return | 398 return |
400 if self.tv.get(tile_pos) == self.GRASSLAND: | 399 if self.tv.get(tile_pos) == self.GRASSLAND: |
401 if self.animal_to_place is not None: | 400 if self.animal_to_place is not None: |
402 self.animal_to_place.unequip_by_name("nest") | 401 self.animal_to_place.unequip_by_name("nest") |
403 self.relocate_animal(self.animal_to_place, tile_pos=tile_pos) | 402 self.relocate_animal(self.animal_to_place, tile_pos=tile_pos) |
403 if self.animal_to_place.egg: | |
404 self.animal_to_place.remove_egg() | |
405 self.eggs -= 1 | |
406 self.toolbar.update_egg_counter(self.eggs) | |
404 | 407 |
405 def relocate_animal(self, chicken, tile_pos=None, place=None): | 408 def relocate_animal(self, chicken, tile_pos=None, place=None): |
406 assert((tile_pos, place) != (None, None)) | 409 assert((tile_pos, place) != (None, None)) |
407 if chicken.abode is not None: | 410 if chicken.abode is not None: |
408 chicken.abode.clear_occupant() | 411 chicken.abode.clear_occupant() |
474 else: | 477 else: |
475 # Attempt to sell the occupant | 478 # Attempt to sell the occupant |
476 if sell_callback(place.occupant): | 479 if sell_callback(place.occupant): |
477 # empty the nest (on button) | 480 # empty the nest (on button) |
478 update_button(place.occupant, empty=True) | 481 update_button(place.occupant, empty=True) |
482 self.remove_chicken(place.occupant) | |
479 else: | 483 else: |
480 # Update for equipment changes, etc. | 484 # Update for equipment changes, etc. |
481 update_button(place.occupant) | 485 update_button(place.occupant) |
482 else: | 486 else: |
483 # there is no occupant, attempt to fill the space | 487 # there is no occupant, attempt to fill the space |
689 if new_chick: | 693 if new_chick: |
690 self.eggs -= 1 | 694 self.eggs -= 1 |
691 try: | 695 try: |
692 building.add_occupant(new_chick) | 696 building.add_occupant(new_chick) |
693 self.add_chicken(new_chick) | 697 self.add_chicken(new_chick) |
698 new_chick.equip(equipment.Nest()) | |
694 except buildings.BuildingFullError: | 699 except buildings.BuildingFullError: |
695 print "Building full." | 700 print "Building full." |
696 self.toolbar.update_egg_counter(self.eggs) | 701 self.toolbar.update_egg_counter(self.eggs) |
697 | 702 |
698 def kill_fox(self, fox): | 703 def kill_fox(self, fox): |