Mercurial > rinkhals
comparison gamelib/gameboard.py @ 243:4f86c2616cdf
Variable number of eggs for chickens
author | Neil Muller <drnlmuller@gmail.com> |
---|---|
date | Sat, 05 Sep 2009 12:05:08 +0000 |
parents | 1a7000c8211c |
children | 634491bf37e8 |
comparison
equal
deleted
inserted
replaced
242:23533f3ccd8a | 243:4f86c2616cdf |
---|---|
374 return | 374 return |
375 | 375 |
376 if do_sell(chick): | 376 if do_sell(chick): |
377 self.remove_chicken(chick) | 377 self.remove_chicken(chick) |
378 | 378 |
379 def sell_one_egg(self, chicken): | |
380 if chicken.eggs: | |
381 self.add_cash(constants.SELL_PRICE_EGG) | |
382 chicken.remove_one_egg() | |
383 self.eggs -= 1 | |
384 self.toolbar.update_egg_counter(self.eggs) | |
385 return True | |
386 return False | |
387 | |
379 def sell_egg(self, tile_pos): | 388 def sell_egg(self, tile_pos): |
380 def do_sell(chicken): | 389 def do_sell(chicken): |
381 if chicken.egg: | 390 # We try sell and egg |
382 # We sell the egg | 391 if self.sell_one_egg(chicken): |
383 self.add_cash(constants.SELL_PRICE_EGG) | |
384 sound.play_sound("sell-chicken.ogg") | 392 sound.play_sound("sell-chicken.ogg") |
385 chicken.remove_egg() | 393 # Force toolbar update |
386 self.eggs -= 1 | |
387 self.toolbar.update_egg_counter(self.eggs) | |
388 # Force update | |
389 self.toolbar.chsize() | 394 self.toolbar.chsize() |
390 return False | 395 return False |
391 | 396 |
392 building = self.get_building(tile_pos) | 397 building = self.get_building(tile_pos) |
393 if building and building.NAME in buildings.HENHOUSES: | 398 if building and building.NAME in buildings.HENHOUSES: |
431 return | 436 return |
432 if self.tv.get(tile_pos) == self.GRASSLAND: | 437 if self.tv.get(tile_pos) == self.GRASSLAND: |
433 if self.animal_to_place is not None: | 438 if self.animal_to_place is not None: |
434 self.animal_to_place.unequip_by_name("nest") | 439 self.animal_to_place.unequip_by_name("nest") |
435 self.relocate_animal(self.animal_to_place, tile_pos=tile_pos) | 440 self.relocate_animal(self.animal_to_place, tile_pos=tile_pos) |
436 if self.animal_to_place.egg: | 441 self.eggs -= self.animal_to_place.get_num_eggs() |
437 self.animal_to_place.remove_egg() | 442 self.animal_to_place.remove_eggs() |
438 self.eggs -= 1 | 443 self.toolbar.update_egg_counter(self.eggs) |
439 self.toolbar.update_egg_counter(self.eggs) | |
440 | 444 |
441 def relocate_animal(self, chicken, tile_pos=None, place=None): | 445 def relocate_animal(self, chicken, tile_pos=None, place=None): |
442 assert((tile_pos, place) != (None, None)) | 446 assert((tile_pos, place) != (None, None)) |
443 if chicken.abode is not None: | 447 if chicken.abode is not None: |
444 chicken.abode.clear_occupant() | 448 chicken.abode.clear_occupant() |
716 self.eggs = 0 | 720 self.eggs = 0 |
717 for building in self.buildings: | 721 for building in self.buildings: |
718 if building.NAME in buildings.HENHOUSES: | 722 if building.NAME in buildings.HENHOUSES: |
719 for chicken in building.occupants(): | 723 for chicken in building.occupants(): |
720 chicken.lay() | 724 chicken.lay() |
721 if chicken.egg: | 725 self.eggs += chicken.get_num_eggs() |
722 self.eggs += 1 | |
723 self.toolbar.update_egg_counter(self.eggs) | 726 self.toolbar.update_egg_counter(self.eggs) |
724 | 727 |
725 def hatch_eggs(self): | 728 def hatch_eggs(self): |
726 for building in self.buildings: | 729 for building in self.buildings: |
727 if building.NAME in buildings.HENHOUSES: | 730 if building.NAME in buildings.HENHOUSES: |
728 for chicken in building.occupants(): | 731 for chicken in building.occupants(): |
729 new_chick = chicken.hatch() | 732 new_chick = chicken.hatch(self) |
730 if new_chick: | 733 if new_chick: |
731 self.eggs -= 1 | |
732 try: | 734 try: |
733 building.add_occupant(new_chick) | 735 building.add_occupant(new_chick) |
734 self.add_chicken(new_chick) | 736 self.add_chicken(new_chick) |
735 new_chick.equip(equipment.Nest()) | 737 new_chick.equip(equipment.Nest()) |
736 except buildings.BuildingFullError: | 738 except buildings.BuildingFullError: |
762 | 764 |
763 def remove_chicken(self, chick): | 765 def remove_chicken(self, chick): |
764 if chick is self.animal_to_place: | 766 if chick is self.animal_to_place: |
765 self.select_animal_to_place(None) | 767 self.select_animal_to_place(None) |
766 self.chickens.discard(chick) | 768 self.chickens.discard(chick) |
767 if chick.egg: | 769 self.eggs -= chick.get_num_eggs() |
768 self.eggs -= 1 | 770 self.toolbar.update_egg_counter(self.eggs) |
769 self.toolbar.update_egg_counter(self.eggs) | |
770 if chick.abode: | 771 if chick.abode: |
771 chick.abode.clear_occupant() | 772 chick.abode.clear_occupant() |
772 self.toolbar.update_chicken_counter(len(self.chickens)) | 773 self.toolbar.update_chicken_counter(len(self.chickens)) |
773 if chick in self.tv.sprites and chick.outside(): | 774 if chick in self.tv.sprites and chick.outside(): |
774 self.tv.sprites.remove(chick) | 775 self.tv.sprites.remove(chick) |