comparison gamelib/equipment.py @ 198:355eaae40b1f

Buildings now affect weapon range and accuracy.
author Jeremy Thurgood <firxen@gmail.com>
date Fri, 04 Sep 2009 19:34:01 +0000
parents 9d31cfc3afde
children 67d10f7e0159
comparison
equal deleted inserted replaced
197:d74693555b86 198:355eaae40b1f
33 class Weapon(Equipment): 33 class Weapon(Equipment):
34 IS_WEAPON = True 34 IS_WEAPON = True
35 DRAW_LAYER = 10 35 DRAW_LAYER = 10
36 36
37 def _get_parameter(self, parameter, wielder): 37 def _get_parameter(self, parameter, wielder):
38 mod_attr = 'MODIFY_%s_%s' % (self.TYPE, parameter)
39 param = getattr(self, parameter) 38 param = getattr(self, parameter)
40 return getattr(wielder.abode, mod_attr, lambda r: r)(param) 39 if wielder.abode:
40 mod_attr = 'MODIFY_%s_%s' % (self.TYPE, parameter)
41 modifier = getattr(wielder.abode.building, mod_attr, lambda r: r)
42 param = modifier(param)
43 return param
41 44
42 def in_range(self, gameboard, wielder, target): 45 def in_range(self, gameboard, wielder, target):
43 """Can the lucky wielder hit the potentially unlucky target with this?""" 46 """Can the lucky wielder hit the potentially unlucky target with this?"""
44 return wielder.pos.dist(target.pos) <= self._get_parameter('RANGE', wielder) 47 return wielder.pos.dist(target.pos) <= self._get_parameter('RANGE', wielder)
45 48