Mercurial > rinkhals
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""" |