comparison nagslang/protagonist.py @ 374:150332d6c1fb

Move the inventory to world, to slightly reduce overall hackyness
author Stefano Rivera <stefano@rivera.za.net>
date Fri, 06 Sep 2013 22:44:14 +0200
parents 21c1c329f8e3
children 83c29d0a0b9c
comparison
equal deleted inserted replaced
373:8c7c5db5f0d3 374:150332d6c1fb
70 def __init__(self, space, world, position): 70 def __init__(self, space, world, position):
71 self.form = self.HUMAN_FORM 71 self.form = self.HUMAN_FORM
72 super(Protagonist, self).__init__( 72 super(Protagonist, self).__init__(
73 self._make_physics(space, position), self._make_renderer()) 73 self._make_physics(space, position), self._make_renderer())
74 self.world = world 74 self.world = world
75 self.inventory = set()
76 self.health_level = PROTAGONIST_HEALTH_MAX_LEVEL 75 self.health_level = PROTAGONIST_HEALTH_MAX_LEVEL
77 76
78 self.angle = 0 77 self.angle = 0
79 self.is_moving = False 78 self.is_moving = False
80 self.changing_sequence = [] 79 self.changing_sequence = []
254 self.physicser.position = old_protagonist.physicser.position 253 self.physicser.position = old_protagonist.physicser.position
255 self.physicser.switch_form(self.form, old_protagonist.form) 254 self.physicser.switch_form(self.form, old_protagonist.form)
256 self.impulse_factor = old_protagonist.impulse_factor 255 self.impulse_factor = old_protagonist.impulse_factor
257 self.form = old_protagonist.form 256 self.form = old_protagonist.form
258 self.angle = old_protagonist.angle 257 self.angle = old_protagonist.angle
259 self.inventory = old_protagonist.inventory
260 258
261 def toggle_form(self): 259 def toggle_form(self):
262 if self.check_timer('change_delay'): 260 if self.check_timer('change_delay'):
263 return 261 return
264 self.changing_sequence.extend(self.CHANGING_SEQUENCE[self.form]) 262 self.changing_sequence.extend(self.CHANGING_SEQUENCE[self.form])
320 318
321 def in_human_form(self): 319 def in_human_form(self):
322 return self.form == self.HUMAN_FORM 320 return self.form == self.HUMAN_FORM
323 321
324 def has_item(self, item): 322 def has_item(self, item):
325 return item in self.inventory 323 return item in self.world.inventory
324
325 def add_item(self, item):
326 self.world.inventory.add(item)
326 327
327 def environmental_movement(self, dx, dy): 328 def environmental_movement(self, dx, dy):
328 if (dx, dy) == (0, 0): 329 if (dx, dy) == (0, 0):
329 return 330 return
330 self.physicser.apply_impulse((dx, dy)) 331 self.physicser.apply_impulse((dx, dy))