comparison gamelib/animal.py @ 158:baf857805867

armour works now
author Adrianna Pińska <adrianna.pinska@gmail.com>
date Thu, 03 Sep 2009 21:50:49 +0000
parents 2a1064fae608
children 9b4213f6ea7f
comparison
equal deleted inserted replaced
157:e3572b907028 158:baf857805867
25 self.image_right = image_right.copy() 25 self.image_right = image_right.copy()
26 self.pos = Position(tile_pos[0], tile_pos[1]) 26 self.pos = Position(tile_pos[0], tile_pos[1])
27 self.equipment = [] 27 self.equipment = []
28 self.abode = None 28 self.abode = None
29 self.facing = 'left' 29 self.facing = 'left'
30 self.lives = 1
30 31
31 def loop(self, tv, _sprite): 32 def loop(self, tv, _sprite):
32 ppos = tv.tile_to_view(self.pos.to_tuple()) 33 ppos = tv.tile_to_view(self.pos.to_tuple())
33 self.rect.x = ppos[0] 34 self.rect.x = ppos[0]
34 self.rect.y = ppos[1] 35 self.rect.y = ppos[1]
58 elif self.facing == 'right': 59 elif self.facing == 'right':
59 self.setimage(self.image_right) 60 self.setimage(self.image_right)
60 61
61 def equip(self, item): 62 def equip(self, item):
62 self.equipment.append(item) 63 self.equipment.append(item)
64 self.draw_equipment(item)
65 if not equipment.is_weapon(item):
66 # redraw weapons on top
67 for weapon in self.weapons():
68 self.draw_equipment(weapon)
69
70 def draw_equipment(self, item):
63 if not hasattr(self, 'EQUIPMENT_IMAGE_ATTRIBUTE'): 71 if not hasattr(self, 'EQUIPMENT_IMAGE_ATTRIBUTE'):
64 return 72 return
65 eq_image_attr = getattr(item, self.EQUIPMENT_IMAGE_ATTRIBUTE, 'None') 73 eq_image_attr = getattr(item, self.EQUIPMENT_IMAGE_ATTRIBUTE, 'None')
66 if not eq_image_attr: 74 if not eq_image_attr:
67 return 75 return
269 return self.pos 277 return self.pos
270 return self._find_best_path_step(self.closest.pos, gameboard) 278 return self._find_best_path_step(self.closest.pos, gameboard)
271 279
272 def _catch_chicken(self, chicken, gameboard): 280 def _catch_chicken(self, chicken, gameboard):
273 """Catch a chicken""" 281 """Catch a chicken"""
274 sound.play_sound("kill-chicken.ogg") 282 chicken.lives -= 1
283 if not chicken.lives > 0:
284 sound.play_sound("kill-chicken.ogg")
285 gameboard.remove_chicken(chicken)
275 self.closest = None 286 self.closest = None
276 gameboard.remove_chicken(chicken)
277 self.hunting = False 287 self.hunting = False
278 self.last_steps = [] # Forget history here 288 self.last_steps = [] # Forget history here
279 289
280 def _update_pos(self, gameboard, new_pos): 290 def _update_pos(self, gameboard, new_pos):
281 """Update the position, making sure we don't step on other foxes""" 291 """Update the position, making sure we don't step on other foxes"""