comparison gamelib/gameboard.py @ 396:19e583e5cdc0

Refactor for further move work
author Neil Muller <drnlmuller@gmail.com>
date Thu, 12 Nov 2009 21:31:52 +0000
parents 2d0ff46118e2
children 532f1ea476ff
comparison
equal deleted inserted replaced
395:2d0ff46118e2 396:19e583e5cdc0
281 self.tv = tiles.FarmVid() 281 self.tv = tiles.FarmVid()
282 self.tv.png_folder_load_tiles('tiles') 282 self.tv.png_folder_load_tiles('tiles')
283 self.tv.tga_load_level(level.map) 283 self.tv.tga_load_level(level.map)
284 width, height = self.tv.size 284 width, height = self.tv.size
285 # Ensure we don't every try to create more foxes then is sane 285 # Ensure we don't every try to create more foxes then is sane
286 self.max_foxes = min(height+width-15, level.max_foxes) 286 self.max_foxes = min(2*height+2*width-15, level.max_foxes)
287 self.create_display() 287 self.create_display()
288 288
289 self.selected_tool = None 289 self.selected_tool = None
290 self.animal_to_place = None 290 self.animal_to_place = None
291 self.sprite_cursor = None 291 self.sprite_cursor = None
786 def run_animations(self): 786 def run_animations(self):
787 # For legacy. 787 # For legacy.
788 if self.toolbar.anim_clear_tool: 788 if self.toolbar.anim_clear_tool:
789 self.toolbar.clear_tool() 789 self.toolbar.clear_tool()
790 790
791 def move_foxes(self): 791 def do_night_step(self):
792 """Move the foxes. 792 """Handle the events of the night.
793 793
794 We return True if there are no more foxes to move or all the 794 We return True if there are no more foxes to move or all the
795 foxes are safely back. This end's the night""" 795 foxes are safely back. This end's the night"""
796 if not self.foxes: 796 if not self.foxes:
797 return True 797 return True
798 # Move all the foxes
799 over = self.foxes_move()
800 if not over:
801 self.foxes_attack()
802 self.chickens_attack()
803 return over
804
805 def foxes_move(self):
798 over = True 806 over = True
799 for fox in self.foxes: 807 for fox in self.foxes:
800 fox.move(self) 808 fox.move(self)
801 if not fox.safe: 809 if not fox.safe:
802 over = False 810 over = False
811 return over
812
813 def foxes_attack(self):
814 for fox in self.foxes:
815 fox.attack(self)
816
817 def chickens_attack(self):
803 for chicken in self.chickens: 818 for chicken in self.chickens:
804 chicken.attack(self) 819 chicken.attack(self)
805 return over
806 820
807 def add_chicken(self, chicken): 821 def add_chicken(self, chicken):
808 self.chickens.add(chicken) 822 self.chickens.add(chicken)
809 if chicken.outside(): 823 if chicken.outside():
810 self.tv.sprites.append(chicken) 824 self.tv.sprites.append(chicken)